OXIESEC PANEL
- Current Dir:
/
/
usr
/
share
/
gir-1.0
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
đ
..
-
11/10/2024 09:42:49 AM
rwxr-xr-x
đ
Atk-1.0.gir
747.35 KB
03/13/2018 02:32:22 PM
rw-r--r--
đ
Atspi-2.0.gir
376.42 KB
03/13/2018 01:02:24 AM
rw-r--r--
đ
Gdk-3.0.gir
1.22 MB
06/05/2019 01:46:01 PM
rw-r--r--
đ
GdkPixbuf-2.0.gir
192.17 KB
03/16/2018 10:57:57 AM
rw-r--r--
đ
GdkX11-3.0.gir
67.11 KB
06/05/2019 01:46:01 PM
rw-r--r--
đ
Gtk-3.0.gir
6.78 MB
06/05/2019 01:46:01 PM
rw-r--r--
đ
HarfBuzz-0.0.gir
363.44 KB
04/13/2018 03:36:14 AM
rw-r--r--
đ
Pango-1.0.gir
633.15 KB
08/21/2018 07:15:52 PM
rw-r--r--
đ
PangoCairo-1.0.gir
38.37 KB
08/21/2018 07:15:52 PM
rw-r--r--
đ
PangoFT2-1.0.gir
14.72 KB
08/21/2018 07:15:52 PM
rw-r--r--
đ
PangoXft-1.0.gir
30.88 KB
08/21/2018 07:15:52 PM
rw-r--r--
Editing: Gtk-3.0.gir
Close
<?xml version="1.0"?> <!-- This file was automatically generated from C sources - DO NOT EDIT! To affect the contents of this file, edit the original C definitions, and/or use gtk-doc annotations. --> <repository version="1.2" xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> <include name="Atk" version="1.0"/> <include name="Gdk" version="3.0"/> <include name="xlib" version="2.0"/> <package name="gtk+-3.0"/> <c:include name="gtk/gtk-a11y.h"/> <c:include name="gtk/gtk.h"/> <c:include name="gtk/gtkx.h"/> <namespace name="Gtk" version="3.0" shared-library="libgtk-3.so.0,libgdk-3.so.0" c:identifier-prefixes="Gtk" c:symbol-prefixes="gtk"> <alias name="Allocation" c:type="GtkAllocation"> <doc xml:space="preserve">A #GtkAllocation-struct of a widget represents region which has been allocated to the widget by its parent. It is a subregion of its parents allocation. See [GtkWidgetâs geometry management section][geometry-management] for more information.</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle"/> </alias> <alias name="Stock" c:type="GtkStock"> <type name="utf8" c:type="char*"/> </alias> <class name="AboutDialog" c:symbol-prefix="about_dialog" c:type="GtkAboutDialog" parent="Dialog" glib:type-name="GtkAboutDialog" glib:get-type="gtk_about_dialog_get_type" glib:type-struct="AboutDialogClass"> <doc xml:space="preserve">The GtkAboutDialog offers a simple way to display information about a program like its logo, name, copyright, website and license. It is also possible to give credits to the authors, documenters, translators and artists who have worked on the program. An about dialog is typically opened when the user selects the `About` option from the `Help` menu. All parts of the dialog are optional. About dialogs often contain links and email addresses. GtkAboutDialog displays these as clickable links. By default, it calls gtk_show_uri_on_window() when a user clicks one. The behaviour can be overridden with the #GtkAboutDialog::activate-link signal. To specify a person with an email address, use a string like "Edgar Allan Poe <edgar\@poe.com>". To specify a website with a title, use a string like "GTK+ team http://www.gtk.org". To make constructing a GtkAboutDialog as convenient as possible, you can use the function gtk_show_about_dialog() which constructs and shows a dialog and keeps it around so that it can be shown again. Note that GTK+ sets a default title of `_("About %s")` on the dialog window (where \%s is replaced by the name of the application, but in order to ensure proper translation of the title, applications should set the title property explicitly when constructing a GtkAboutDialog, as shown in the following example: |[<!-- language="C" --> GdkPixbuf *example_logo = gdk_pixbuf_new_from_file ("./logo.png", NULL); gtk_show_about_dialog (NULL, "program-name", "ExampleCode", "logo", example_logo, "title", _("About ExampleCode"), NULL); ]| It is also possible to show a #GtkAboutDialog like any other #GtkDialog, e.g. using gtk_dialog_run(). In this case, you might need to know that the âCloseâ button returns the #GTK_RESPONSE_CANCEL response id.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_about_dialog_new" version="2.6"> <doc xml:space="preserve">Creates a new #GtkAboutDialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkAboutDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="activate_link"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="add_credit_section" c:identifier="gtk_about_dialog_add_credit_section" version="3.4"> <doc xml:space="preserve">Creates a new section in the Credits page.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">A #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="section_name" transfer-ownership="none"> <doc xml:space="preserve">The name of the section</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="people" transfer-ownership="none"> <doc xml:space="preserve">The people who belong to that section</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> </parameters> </method> <method name="get_artists" c:identifier="gtk_about_dialog_get_artists" version="2.6"> <doc xml:space="preserve">Returns the string which are displayed in the artists tab of the secondary credits dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A %NULL-terminated string array containing the artists. The array is owned by the about dialog and must not be modified.</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_authors" c:identifier="gtk_about_dialog_get_authors" version="2.6"> <doc xml:space="preserve">Returns the string which are displayed in the authors tab of the secondary credits dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A %NULL-terminated string array containing the authors. The array is owned by the about dialog and must not be modified.</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_comments" c:identifier="gtk_about_dialog_get_comments" version="2.6"> <doc xml:space="preserve">Returns the comments string.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The comments. The string is owned by the about dialog and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_copyright" c:identifier="gtk_about_dialog_get_copyright" version="2.6"> <doc xml:space="preserve">Returns the copyright string.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The copyright string. The string is owned by the about dialog and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_documenters" c:identifier="gtk_about_dialog_get_documenters" version="2.6"> <doc xml:space="preserve">Returns the string which are displayed in the documenters tab of the secondary credits dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A %NULL-terminated string array containing the documenters. The array is owned by the about dialog and must not be modified.</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_license" c:identifier="gtk_about_dialog_get_license" version="2.6"> <doc xml:space="preserve">Returns the license information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The license information. The string is owned by the about dialog and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_license_type" c:identifier="gtk_about_dialog_get_license_type" version="3.0"> <doc xml:space="preserve">Retrieves the license set using gtk_about_dialog_set_license_type()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkLicense value</doc> <type name="License" c:type="GtkLicense"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_logo" c:identifier="gtk_about_dialog_get_logo" version="2.6"> <doc xml:space="preserve">Returns the pixbuf displayed as logo in the about dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the pixbuf displayed as logo. The pixbuf is owned by the about dialog. If you want to keep a reference to it, you have to call g_object_ref() on it.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_logo_icon_name" c:identifier="gtk_about_dialog_get_logo_icon_name" version="2.6"> <doc xml:space="preserve">Returns the icon name displayed as logo in the about dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the icon name displayed as logo. The string is owned by the dialog. If you want to keep a reference to it, you have to call g_strdup() on it.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_program_name" c:identifier="gtk_about_dialog_get_program_name" version="2.12"> <doc xml:space="preserve">Returns the program name displayed in the about dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The program name. The string is owned by the about dialog and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_translator_credits" c:identifier="gtk_about_dialog_get_translator_credits" version="2.6"> <doc xml:space="preserve">Returns the translator credits string which is displayed in the translators tab of the secondary credits dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The translator credits string. The string is owned by the about dialog and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_version" c:identifier="gtk_about_dialog_get_version" version="2.6"> <doc xml:space="preserve">Returns the version string.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The version string. The string is owned by the about dialog and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_website" c:identifier="gtk_about_dialog_get_website" version="2.6"> <doc xml:space="preserve">Returns the website URL.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The website URL. The string is owned by the about dialog and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_website_label" c:identifier="gtk_about_dialog_get_website_label" version="2.6"> <doc xml:space="preserve">Returns the label used for the website link.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The label used for the website link. The string is owned by the about dialog and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="get_wrap_license" c:identifier="gtk_about_dialog_get_wrap_license" version="2.8"> <doc xml:space="preserve">Returns whether the license text in @about is automatically wrapped.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the license text is wrapped</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> </parameters> </method> <method name="set_artists" c:identifier="gtk_about_dialog_set_artists" version="2.6"> <doc xml:space="preserve">Sets the strings which are displayed in the artists tab of the secondary credits dialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="artists" transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated array of strings</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> </parameters> </method> <method name="set_authors" c:identifier="gtk_about_dialog_set_authors" version="2.6"> <doc xml:space="preserve">Sets the strings which are displayed in the authors tab of the secondary credits dialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="authors" transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated array of strings</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> </parameters> </method> <method name="set_comments" c:identifier="gtk_about_dialog_set_comments" version="2.6"> <doc xml:space="preserve">Sets the comments string to display in the about dialog. This should be a short string of one or two lines.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="comments" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a comments string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_copyright" c:identifier="gtk_about_dialog_set_copyright" version="2.6"> <doc xml:space="preserve">Sets the copyright string to display in the about dialog. This should be a short string of one or two lines.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="copyright" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the copyright string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_documenters" c:identifier="gtk_about_dialog_set_documenters" version="2.6"> <doc xml:space="preserve">Sets the strings which are displayed in the documenters tab of the secondary credits dialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="documenters" transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated array of strings</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> </parameters> </method> <method name="set_license" c:identifier="gtk_about_dialog_set_license" version="2.6"> <doc xml:space="preserve">Sets the license information to be displayed in the secondary license dialog. If @license is %NULL, the license button is hidden.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="license" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the license information or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_license_type" c:identifier="gtk_about_dialog_set_license_type" version="3.0"> <doc xml:space="preserve">Sets the license of the application showing the @about dialog from a list of known licenses. This function overrides the license set using gtk_about_dialog_set_license().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="license_type" transfer-ownership="none"> <doc xml:space="preserve">the type of license</doc> <type name="License" c:type="GtkLicense"/> </parameter> </parameters> </method> <method name="set_logo" c:identifier="gtk_about_dialog_set_logo" version="2.6"> <doc xml:space="preserve">Sets the pixbuf to be displayed as logo in the about dialog. If it is %NULL, the default window icon set with gtk_window_set_default_icon() will be used.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="logo" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkPixbuf, or %NULL</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_logo_icon_name" c:identifier="gtk_about_dialog_set_logo_icon_name" version="2.6"> <doc xml:space="preserve">Sets the pixbuf to be displayed as logo in the about dialog. If it is %NULL, the default window icon set with gtk_window_set_default_icon() will be used.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an icon name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_program_name" c:identifier="gtk_about_dialog_set_program_name" version="2.12"> <doc xml:space="preserve">Sets the name to display in the about dialog. If this is not set, it defaults to g_get_application_name().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the program name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_translator_credits" c:identifier="gtk_about_dialog_set_translator_credits" version="2.6"> <doc xml:space="preserve">Sets the translator credits string which is displayed in the translators tab of the secondary credits dialog. 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: |[<!-- language="C" --> GtkWidget *about = gtk_about_dialog_new (); gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG (about), _("translator-credits")); ]| 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 hide the tab.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="translator_credits" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the translator credits</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_version" c:identifier="gtk_about_dialog_set_version" version="2.6"> <doc xml:space="preserve">Sets the version string to display in the about dialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="version" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the version string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_website" c:identifier="gtk_about_dialog_set_website" version="2.6"> <doc xml:space="preserve">Sets the URL to use for the website link.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="website" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a URL string starting with "http://"</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_website_label" c:identifier="gtk_about_dialog_set_website_label" version="2.6"> <doc xml:space="preserve">Sets the label to be used for the website link.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="website_label" transfer-ownership="none"> <doc xml:space="preserve">the label used for the website link</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_wrap_license" c:identifier="gtk_about_dialog_set_wrap_license" version="2.8"> <doc xml:space="preserve">Sets whether the license text in @about is automatically wrapped.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="about" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAboutDialog</doc> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </instance-parameter> <parameter name="wrap_license" transfer-ownership="none"> <doc xml:space="preserve">whether to wrap the license</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="artists" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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, see the introduction for more details.</doc> <array> <type name="utf8"/> </array> </property> <property name="authors" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <array> <type name="utf8"/> </array> </property> <property name="comments" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="copyright" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Copyright information for the program.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="documenters" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <array> <type name="utf8"/> </array> </property> <property name="license" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The license of the program. 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 "wrap-license" property is set to %TRUE; otherwise the text itself must contain the intended linebreaks. When setting this property to a non-%NULL value, the #GtkAboutDialog:license-type property is set to %GTK_LICENSE_CUSTOM as a side effect.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="license-type" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The license of the program, as a value of the %GtkLicense enumeration. 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 #GtkAboutDialog:website property. If %GTK_LICENSE_CUSTOM is used, the current contents of the #GtkAboutDialog:license property are used. For any other #GtkLicense value, the contents of the #GtkAboutDialog:license property are also set by this property as a side effect.</doc> <type name="License"/> </property> <property name="logo" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A logo for the about box. If it is %NULL, the default window icon set with gtk_window_set_default_icon() will be used.</doc> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="logo-icon-name" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A named icon to use as the logo for the about box. This property overrides the #GtkAboutDialog:logo property.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="program-name" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The name of the program. If this is not set, it defaults to g_get_application_name().</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="translator-credits" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="version" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The version of the program.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="website" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The URL for the link to the website of the program. This should be a string starting with "http://.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="website-label" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The label for the link to the website of the program.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="wrap-license" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to wrap the text in the license dialog.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv" readable="0" private="1"> <type name="AboutDialogPrivate" c:type="GtkAboutDialogPrivate*"/> </field> <glib:signal name="activate-link" when="last" version="2.24"> <doc xml:space="preserve">The signal which gets emitted to activate a URI. Applications may connect to it to override the default behaviour, which is to call gtk_show_uri_on_window().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the link has been activated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the URI that is activated</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> </class> <record name="AboutDialogClass" c:type="GtkAboutDialogClass" glib:is-gtype-struct-for="AboutDialog"> <field name="parent_class"> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="activate_link"> <callback name="activate_link"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="dialog" transfer-ownership="none"> <type name="AboutDialog" c:type="GtkAboutDialog*"/> </parameter> <parameter name="uri" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="AboutDialogPrivate" c:type="GtkAboutDialogPrivate" disguised="1"> </record> <bitfield name="AccelFlags" glib:type-name="GtkAccelFlags" glib:get-type="gtk_accel_flags_get_type" c:type="GtkAccelFlags"> <doc xml:space="preserve">Accelerator flags used with gtk_accel_group_connect().</doc> <member name="visible" value="1" c:identifier="GTK_ACCEL_VISIBLE" glib:nick="visible"> <doc xml:space="preserve">Accelerator is visible</doc> </member> <member name="locked" value="2" c:identifier="GTK_ACCEL_LOCKED" glib:nick="locked"> <doc xml:space="preserve">Accelerator not removable</doc> </member> <member name="mask" value="7" c:identifier="GTK_ACCEL_MASK" glib:nick="mask"> <doc xml:space="preserve">Mask</doc> </member> </bitfield> <class name="AccelGroup" c:symbol-prefix="accel_group" c:type="GtkAccelGroup" parent="GObject.Object" glib:type-name="GtkAccelGroup" glib:get-type="gtk_accel_group_get_type" glib:type-struct="AccelGroupClass"> <doc xml:space="preserve">A #GtkAccelGroup represents a group of keyboard accelerators, typically attached to a toplevel #GtkWindow (with gtk_window_add_accel_group()). Usually you wonât need to create a #GtkAccelGroup directly; instead, when using #GtkUIManager, GTK+ automatically sets up the accelerators for your menus in the ui managerâs #GtkAccelGroup. Note that âacceleratorsâ are different from âmnemonicsâ. Accelerators are shortcuts for activating a menu item; they appear alongside the menu item theyâre a shortcut for. For example âCtrl+Qâ might appear alongside the âQuitâ menu item. Mnemonics are shortcuts for GUI elements such as text entries or buttons; they appear as underlined characters. See gtk_label_new_with_mnemonic(). Menu items can have both accelerators and mnemonics, of course.</doc> <constructor name="new" c:identifier="gtk_accel_group_new"> <doc xml:space="preserve">Creates a new #GtkAccelGroup.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkAccelGroup object</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </return-value> </constructor> <function name="from_accel_closure" c:identifier="gtk_accel_group_from_accel_closure"> <doc xml:space="preserve">Finds the #GtkAccelGroup to which @closure is connected; see gtk_accel_group_connect().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #GtkAccelGroup to which @closure is connected, or %NULL</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </return-value> <parameters> <parameter name="closure" transfer-ownership="none"> <doc xml:space="preserve">a #GClosure</doc> <type name="GObject.Closure" c:type="GClosure*"/> </parameter> </parameters> </function> <virtual-method name="accel_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> <parameter name="keyval" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifier" transfer-ownership="none"> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="accel_closure" transfer-ownership="none"> <type name="GObject.Closure" c:type="GClosure*"/> </parameter> </parameters> </virtual-method> <method name="activate" c:identifier="gtk_accel_group_activate"> <doc xml:space="preserve">Finds the first accelerator in @accel_group that matches @accel_key and @accel_mods, and activates it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an accelerator was activated and handled this keypress</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> <parameter name="accel_quark" transfer-ownership="none"> <doc xml:space="preserve">the quark for the accelerator name</doc> <type name="GLib.Quark" c:type="GQuark"/> </parameter> <parameter name="acceleratable" transfer-ownership="none"> <doc xml:space="preserve">the #GObject, usually a #GtkWindow, on which to activate the accelerator</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">accelerator keyval from a key event</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">keyboard state mask from a key event</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </method> <method name="connect" c:identifier="gtk_accel_group_connect"> <doc xml:space="preserve">Installs an accelerator in this group. When @accel_group is being activated in response to a call to gtk_accel_groups_activate(), @closure will be invoked if the @accel_key and @accel_mods from gtk_accel_groups_activate() match those of this connection. The signature used for the @closure is that of #GtkAccelGroupActivate. Note that, due to implementation details, a single closure can only be connected to one accelerator group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">the accelerator group to install an accelerator in</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">key value of the accelerator</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">modifier combination of the accelerator</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="accel_flags" transfer-ownership="none"> <doc xml:space="preserve">a flag mask to configure this accelerator</doc> <type name="AccelFlags" c:type="GtkAccelFlags"/> </parameter> <parameter name="closure" transfer-ownership="none"> <doc xml:space="preserve">closure to be executed upon accelerator activation</doc> <type name="GObject.Closure" c:type="GClosure*"/> </parameter> </parameters> </method> <method name="connect_by_path" c:identifier="gtk_accel_group_connect_by_path"> <doc xml:space="preserve">Installs an accelerator in this group, using an accelerator path to look up the appropriate key and modifiers (see gtk_accel_map_add_entry()). When @accel_group is being activated in response to a call to gtk_accel_groups_activate(), @closure will be invoked if the @accel_key and @accel_mods from gtk_accel_groups_activate() match the key and modifiers for the path. The signature used for the @closure is that of #GtkAccelGroupActivate. Note that @accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">the accelerator group to install an accelerator in</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">path used for determining key and modifiers</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="closure" transfer-ownership="none"> <doc xml:space="preserve">closure to be executed upon accelerator activation</doc> <type name="GObject.Closure" c:type="GClosure*"/> </parameter> </parameters> </method> <method name="disconnect" c:identifier="gtk_accel_group_disconnect"> <doc xml:space="preserve">Removes an accelerator previously installed through gtk_accel_group_connect(). Since 2.20 @closure can be %NULL.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the closure was found and got disconnected</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">the accelerator group to remove an accelerator from</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> <parameter name="closure" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the closure to remove from this accelerator group, or %NULL to remove all closures</doc> <type name="GObject.Closure" c:type="GClosure*"/> </parameter> </parameters> </method> <method name="disconnect_key" c:identifier="gtk_accel_group_disconnect_key"> <doc xml:space="preserve">Removes an accelerator previously installed through gtk_accel_group_connect().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there was an accelerator which could be removed, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">the accelerator group to install an accelerator in</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">key value of the accelerator</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">modifier combination of the accelerator</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </method> <method name="find" c:identifier="gtk_accel_group_find"> <doc xml:space="preserve">Finds the first entry in an accelerator group for which @find_func returns %TRUE and returns its #GtkAccelKey.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the key of the first entry passing @find_func. The key is owned by GTK+ and must not be freed.</doc> <type name="AccelKey" c:type="GtkAccelKey*"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> <parameter name="find_func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">a function to filter the entries of @accel_group with</doc> <type name="AccelGroupFindFunc" c:type="GtkAccelGroupFindFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to @find_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="get_is_locked" c:identifier="gtk_accel_group_get_is_locked" version="2.14"> <doc xml:space="preserve">Locks are added and removed using gtk_accel_group_lock() and gtk_accel_group_unlock().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there are 1 or more locks on the @accel_group, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> </parameters> </method> <method name="get_modifier_mask" c:identifier="gtk_accel_group_get_modifier_mask" version="2.14"> <doc xml:space="preserve">Gets a #GdkModifierType representing the mask for this @accel_group. For example, #GDK_CONTROL_MASK, #GDK_SHIFT_MASK, etc.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the modifier mask for this accel group.</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> </parameters> </method> <method name="lock" c:identifier="gtk_accel_group_lock"> <doc xml:space="preserve">Locks the given accelerator group. Locking an acelerator group prevents the accelerators contained within it to be changed during runtime. Refer to gtk_accel_map_change_entry() about runtime accelerator changes. If called more than once, @accel_group remains locked until gtk_accel_group_unlock() has been called an equivalent number of times.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> </parameters> </method> <method name="query" c:identifier="gtk_accel_group_query"> <doc xml:space="preserve">Queries an accelerator group for all entries matching @accel_key and @accel_mods.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">an array of @n_entries #GtkAccelGroupEntry elements, or %NULL. The array is owned by GTK+ and must not be freed.</doc> <array length="2" zero-terminated="0" c:type="GtkAccelGroupEntry*"> <type name="AccelGroupEntry" c:type="GtkAccelGroupEntry"/> </array> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">the accelerator group to query</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">key value of the accelerator</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">modifier combination of the accelerator</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="n_entries" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return the number of entries found, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> <method name="unlock" c:identifier="gtk_accel_group_unlock"> <doc xml:space="preserve">Undoes the last call to gtk_accel_group_lock() on this @accel_group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </instance-parameter> </parameters> </method> <property name="is-locked" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="modifier-mask" transfer-ownership="none"> <type name="Gdk.ModifierType"/> </property> <field name="parent"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="AccelGroupPrivate" c:type="GtkAccelGroupPrivate*"/> </field> <glib:signal name="accel-activate" detailed="1"> <doc xml:space="preserve">The accel-activate signal is an implementation detail of #GtkAccelGroup and not meant to be used by applications.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the accelerator was activated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="acceleratable" transfer-ownership="none"> <doc xml:space="preserve">the object on which the accelerator was activated</doc> <type name="GObject.Object"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">the accelerator keyval</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifier" transfer-ownership="none"> <doc xml:space="preserve">the modifier combination of the accelerator</doc> <type name="Gdk.ModifierType"/> </parameter> </parameters> </glib:signal> <glib:signal name="accel-changed" when="first" detailed="1"> <doc xml:space="preserve">The accel-changed signal is emitted when an entry is added to or removed from the accel group. Widgets like #GtkAccelLabel which display an associated accelerator should connect to this signal, and rebuild their visual representation if the @accel_closure is theirs.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">the accelerator keyval</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifier" transfer-ownership="none"> <doc xml:space="preserve">the modifier combination of the accelerator</doc> <type name="Gdk.ModifierType"/> </parameter> <parameter name="accel_closure" transfer-ownership="none"> <doc xml:space="preserve">the #GClosure of the accelerator</doc> <type name="GObject.Closure"/> </parameter> </parameters> </glib:signal> </class> <callback name="AccelGroupActivate" c:type="GtkAccelGroupActivate"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="accel_group" transfer-ownership="none"> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> <parameter name="acceleratable" transfer-ownership="none"> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifier" transfer-ownership="none"> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </callback> <record name="AccelGroupClass" c:type="GtkAccelGroupClass" glib:is-gtype-struct-for="AccelGroup"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="accel_changed"> <callback name="accel_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accel_group" transfer-ownership="none"> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifier" transfer-ownership="none"> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="accel_closure" transfer-ownership="none"> <type name="GObject.Closure" c:type="GClosure*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="AccelGroupEntry" c:type="GtkAccelGroupEntry"> <field name="key" writable="1"> <type name="AccelKey" c:type="GtkAccelKey"/> </field> <field name="closure" writable="1"> <type name="GObject.Closure" c:type="GClosure*"/> </field> <field name="accel_path_quark" writable="1"> <type name="GLib.Quark" c:type="GQuark"/> </field> </record> <callback name="AccelGroupFindFunc" c:type="GtkAccelGroupFindFunc" version="2.2"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="key" transfer-ownership="none"> <type name="AccelKey" c:type="GtkAccelKey*"/> </parameter> <parameter name="closure" transfer-ownership="none"> <type name="GObject.Closure" c:type="GClosure*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="AccelGroupPrivate" c:type="GtkAccelGroupPrivate" disguised="1"> </record> <record name="AccelKey" c:type="GtkAccelKey"> <field name="accel_key" writable="1"> <doc xml:space="preserve">The accelerator keyval</doc> <type name="guint" c:type="guint"/> </field> <field name="accel_mods" writable="1"> <doc xml:space="preserve">The accelerator modifiers</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </field> <field name="accel_flags" writable="1" bits="16"> <doc xml:space="preserve">The accelerator flags</doc> <type name="guint" c:type="guint"/> </field> </record> <class name="AccelLabel" c:symbol-prefix="accel_label" c:type="GtkAccelLabel" parent="Label" glib:type-name="GtkAccelLabel" glib:get-type="gtk_accel_label_get_type" glib:type-struct="AccelLabelClass"> <doc xml:space="preserve">The #GtkAccelLabel widget is a subclass of #GtkLabel that also displays an accelerator key on the right of the label text, e.g. âCtrl+Sâ. It is commonly used in menus to show the keyboard short-cuts for commands. The accelerator key to display is typically not set explicitly (although it can be, with gtk_accel_label_set_accel()). Instead, the #GtkAccelLabel displays the accelerators which have been added to a particular widget. This widget is set by calling gtk_accel_label_set_accel_widget(). For example, a #GtkMenuItem widget may have an accelerator added to emit the âactivateâ signal when the âCtrl+Sâ key combination is pressed. A #GtkAccelLabel is created and added to the #GtkMenuItem, and gtk_accel_label_set_accel_widget() is called with the #GtkMenuItem as the second argument. The #GtkAccelLabel will now display âCtrl+Sâ after its label. Note that creating a #GtkMenuItem with gtk_menu_item_new_with_label() (or one of the similar functions for #GtkCheckMenuItem and #GtkRadioMenuItem) automatically adds a #GtkAccelLabel to the #GtkMenuItem and calls gtk_accel_label_set_accel_widget() to set it up for you. A #GtkAccelLabel will only display accelerators which have %GTK_ACCEL_VISIBLE set (see #GtkAccelFlags). A #GtkAccelLabel can display multiple accelerators and even signal names, though it is almost always used to display just one accelerator key. ## Creating a simple menu item with an accelerator key. |[<!-- language="C" --> GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); GtkWidget *menu = gtk_menu_new (); GtkWidget *save_item; GtkAccelGroup *accel_group; // Create a GtkAccelGroup and add it to the window. accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); // Create the menu item using the convenience function. save_item = gtk_menu_item_new_with_label ("Save"); gtk_widget_show (save_item); gtk_container_add (GTK_CONTAINER (menu), save_item); // Now add the accelerator to the GtkMenuItem. Note that since we // called gtk_menu_item_new_with_label() to create the GtkMenuItem // the GtkAccelLabel is automatically set up to display the // GtkMenuItem accelerators. We just need to make sure we use // GTK_ACCEL_VISIBLE here. gtk_widget_add_accelerator (save_item, "activate", accel_group, GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); ]| # CSS nodes |[<!-- language="plain" --> label â°ââ accelerator ]| Like #GtkLabel, GtkAccelLabel has a main CSS node with the name label. It adds a subnode with name accelerator.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_accel_label_new"> <doc xml:space="preserve">Creates a new #GtkAccelLabel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkAccelLabel.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="string" transfer-ownership="none"> <doc xml:space="preserve">the label string. Must be non-%NULL.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_accel" c:identifier="gtk_accel_label_get_accel" version="3.12"> <doc xml:space="preserve">Gets the keyval and modifier mask set with gtk_accel_label_set_accel().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelLabel</doc> <type name="AccelLabel" c:type="GtkAccelLabel*"/> </instance-parameter> <parameter name="accelerator_key" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the keyval</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="accelerator_mods" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the modifier mask</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType*"/> </parameter> </parameters> </method> <method name="get_accel_widget" c:identifier="gtk_accel_label_get_accel_widget"> <doc xml:space="preserve">Fetches the widget monitored by this accelerator label. See gtk_accel_label_set_accel_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the object monitored by the accelerator label, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="accel_label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelLabel</doc> <type name="AccelLabel" c:type="GtkAccelLabel*"/> </instance-parameter> </parameters> </method> <method name="get_accel_width" c:identifier="gtk_accel_label_get_accel_width"> <doc xml:space="preserve">Returns the width needed to display the accelerator key(s). This is used by menus to align all of the #GtkMenuItem widgets, and shouldn't be needed by applications.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the width needed to display the accelerator key(s).</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="accel_label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelLabel.</doc> <type name="AccelLabel" c:type="GtkAccelLabel*"/> </instance-parameter> </parameters> </method> <method name="refetch" c:identifier="gtk_accel_label_refetch"> <doc xml:space="preserve">Recreates the string representing the accelerator keys. This should not be needed since the string is automatically updated whenever accelerators are added or removed from the associated widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">always returns %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="accel_label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelLabel.</doc> <type name="AccelLabel" c:type="GtkAccelLabel*"/> </instance-parameter> </parameters> </method> <method name="set_accel" c:identifier="gtk_accel_label_set_accel" version="3.6"> <doc xml:space="preserve">Manually sets a keyval and modifier mask as the accelerator rendered by @accel_label. If a keyval and modifier are explicitly set then these values are used regardless of any associated accel closure or widget. Providing an @accelerator_key of 0 removes the manual setting.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelLabel</doc> <type name="AccelLabel" c:type="GtkAccelLabel*"/> </instance-parameter> <parameter name="accelerator_key" transfer-ownership="none"> <doc xml:space="preserve">a keyval, or 0</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accelerator_mods" transfer-ownership="none"> <doc xml:space="preserve">the modifier mask for the accel</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </method> <method name="set_accel_closure" c:identifier="gtk_accel_label_set_accel_closure"> <doc xml:space="preserve">Sets the closure to be monitored by this accelerator label. The closure must be connected to an accelerator group; see gtk_accel_group_connect(). Passing %NULL for @accel_closure will dissociate @accel_label from its current closure, if any.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelLabel</doc> <type name="AccelLabel" c:type="GtkAccelLabel*"/> </instance-parameter> <parameter name="accel_closure" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the closure to monitor for accelerator changes, or %NULL</doc> <type name="GObject.Closure" c:type="GClosure*"/> </parameter> </parameters> </method> <method name="set_accel_widget" c:identifier="gtk_accel_label_set_accel_widget"> <doc xml:space="preserve">Sets the widget to be monitored by this accelerator label. Passing %NULL for @accel_widget will dissociate @accel_label from its current widget, if any.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel_label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelLabel</doc> <type name="AccelLabel" c:type="GtkAccelLabel*"/> </instance-parameter> <parameter name="accel_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget to be monitored, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <property name="accel-closure" writable="1" transfer-ownership="none"> <type name="GObject.Closure"/> </property> <property name="accel-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <field name="label"> <type name="Label" c:type="GtkLabel"/> </field> <field name="priv"> <type name="AccelLabelPrivate" c:type="GtkAccelLabelPrivate*"/> </field> </class> <record name="AccelLabelClass" c:type="GtkAccelLabelClass" glib:is-gtype-struct-for="AccelLabel"> <field name="parent_class"> <type name="LabelClass" c:type="GtkLabelClass"/> </field> <field name="signal_quote1"> <type name="utf8" c:type="gchar*"/> </field> <field name="signal_quote2"> <type name="utf8" c:type="gchar*"/> </field> <field name="mod_name_shift"> <type name="utf8" c:type="gchar*"/> </field> <field name="mod_name_control"> <type name="utf8" c:type="gchar*"/> </field> <field name="mod_name_alt"> <type name="utf8" c:type="gchar*"/> </field> <field name="mod_separator"> <type name="utf8" c:type="gchar*"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="AccelLabelPrivate" c:type="GtkAccelLabelPrivate" disguised="1"> </record> <class name="AccelMap" c:symbol-prefix="accel_map" c:type="GtkAccelMap" parent="GObject.Object" glib:type-name="GtkAccelMap" glib:get-type="gtk_accel_map_get_type" glib:type-struct="AccelMapClass"> <doc xml:space="preserve">Accelerator maps are used to define runtime configurable accelerators. Functions for manipulating them are are usually used by higher level convenience mechanisms like #GtkUIManager and are thus considered âlow-levelâ. Youâll want to use them if youâre manually creating menus that should have user-configurable accelerators. An accelerator is uniquely defined by: - accelerator path - accelerator key - accelerator modifiers The accelerator path must consist of â<WINDOWTYPE>/Category1/Category2/.../Actionâ, where WINDOWTYPE should be a unique application-specific identifier that corresponds to the kind of window the accelerator is being used in, e.g. âGimp-Imageâ, âAbiword-Documentâ or âGnumeric-Settingsâ. The âCategory1/.../Actionâ portion is most appropriately chosen by the action the accelerator triggers, i.e. for accelerators on menu items, choose the itemâs menu path, e.g. âFile/Save Asâ, âImage/View/Zoomâ or âEdit/Select Allâ. So a full valid accelerator path may look like: â<Gimp-Toolbox>/File/Dialogs/Tool Options...â. All accelerators are stored inside one global #GtkAccelMap that can be obtained using gtk_accel_map_get(). See [Monitoring changes][monitoring-changes] for additional details. # Manipulating accelerators New accelerators can be added using gtk_accel_map_add_entry(). To search for specific accelerator, use gtk_accel_map_lookup_entry(). Modifications of existing accelerators should be done using gtk_accel_map_change_entry(). In order to avoid having some accelerators changed, they can be locked using gtk_accel_map_lock_path(). Unlocking is done using gtk_accel_map_unlock_path(). # Saving and loading accelerator maps Accelerator maps can be saved to and loaded from some external resource. For simple saving and loading from file, gtk_accel_map_save() and gtk_accel_map_load() are provided. Saving and loading can also be done by providing file descriptor to gtk_accel_map_save_fd() and gtk_accel_map_load_fd(). # Monitoring changes #GtkAccelMap object is only useful for monitoring changes of accelerators. By connecting to #GtkAccelMap::changed signal, one can monitor changes of all accelerators. It is also possible to monitor only single accelerator path by using it as a detail of the #GtkAccelMap::changed signal.</doc> <function name="add_entry" c:identifier="gtk_accel_map_add_entry"> <doc xml:space="preserve">Registers a new accelerator with the global accelerator map. This function should only be called once per @accel_path with the canonical @accel_key and @accel_mods for this path. To change the accelerator during runtime programatically, use gtk_accel_map_change_entry(). Set @accel_key and @accel_mods to 0 to request a removal of the accelerator. Note that @accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">valid accelerator path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">the accelerator key</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">the accelerator modifiers</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="add_filter" c:identifier="gtk_accel_map_add_filter"> <doc xml:space="preserve">Adds a filter to the global list of accel path filters. Accel map entries whose accel path matches one of the filters are skipped by gtk_accel_map_foreach(). This function is intended for GTK+ modules that create their own menus, but donât want them to be saved into the applications accelerator map dump.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="filter_pattern" transfer-ownership="none"> <doc xml:space="preserve">a pattern (see #GPatternSpec)</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="change_entry" c:identifier="gtk_accel_map_change_entry"> <doc xml:space="preserve">Changes the @accel_key and @accel_mods currently associated with @accel_path. Due to conflicts with other accelerators, a change may not always be possible, @replace indicates whether other accelerators may be deleted to resolve such conflicts. A change will only occur if all conflicts could be resolved (which might not be the case if conflicting accelerators are locked). Successful changes are indicated by a %TRUE return value. Note that @accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the accelerator could be changed, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">a valid accelerator path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">the new accelerator key</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">the new accelerator modifiers</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="replace" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if other accelerators may be deleted upon conflicts</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="foreach" c:identifier="gtk_accel_map_foreach"> <doc xml:space="preserve">Loops over the entries in the accelerator map whose accel path doesnât match any of the filters added with gtk_accel_map_add_filter(), and execute @foreach_func on each. The signature of @foreach_func is that of #GtkAccelMapForeach, the @changed parameter indicates whether this accelerator was changed during runtime (thus, would need saving during an accelerator map dump).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to be passed into @foreach_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="foreach_func" transfer-ownership="none" scope="call"> <doc xml:space="preserve">function to be executed for each accel map entry which is not filtered out</doc> <type name="AccelMapForeach" c:type="GtkAccelMapForeach"/> </parameter> </parameters> </function> <function name="foreach_unfiltered" c:identifier="gtk_accel_map_foreach_unfiltered"> <doc xml:space="preserve">Loops over all entries in the accelerator map, and execute @foreach_func on each. The signature of @foreach_func is that of #GtkAccelMapForeach, the @changed parameter indicates whether this accelerator was changed during runtime (thus, would need saving during an accelerator map dump).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to be passed into @foreach_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="foreach_func" transfer-ownership="none" scope="call"> <doc xml:space="preserve">function to be executed for each accel map entry</doc> <type name="AccelMapForeach" c:type="GtkAccelMapForeach"/> </parameter> </parameters> </function> <function name="get" c:identifier="gtk_accel_map_get" version="2.4"> <doc xml:space="preserve">Gets the singleton global #GtkAccelMap object. This object is useful only for notification of changes to the accelerator map via the ::changed signal; it isnât a parameter to the other accelerator map functions.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the global #GtkAccelMap object</doc> <type name="AccelMap" c:type="GtkAccelMap*"/> </return-value> </function> <function name="load" c:identifier="gtk_accel_map_load"> <doc xml:space="preserve">Parses a file previously saved with gtk_accel_map_save() for accelerator specifications, and propagates them accordingly.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="file_name" transfer-ownership="none"> <doc xml:space="preserve">a file containing accelerator specifications, in the GLib file name encoding</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="load_fd" c:identifier="gtk_accel_map_load_fd"> <doc xml:space="preserve">Filedescriptor variant of gtk_accel_map_load(). Note that the file descriptor will not be closed by this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="fd" transfer-ownership="none"> <doc xml:space="preserve">a valid readable file descriptor</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="load_scanner" c:identifier="gtk_accel_map_load_scanner"> <doc xml:space="preserve">#GScanner variant of gtk_accel_map_load().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="scanner" transfer-ownership="none"> <doc xml:space="preserve">a #GScanner which has already been provided with an input file</doc> <type name="GLib.Scanner" c:type="GScanner*"/> </parameter> </parameters> </function> <function name="lock_path" c:identifier="gtk_accel_map_lock_path" version="2.4"> <doc xml:space="preserve">Locks the given accelerator path. If the accelerator map doesnât yet contain an entry for @accel_path, a new one is created. Locking an accelerator path prevents its accelerator from being changed during runtime. A locked accelerator path can be unlocked by gtk_accel_map_unlock_path(). Refer to gtk_accel_map_change_entry() for information about runtime accelerator changes. If called more than once, @accel_path remains locked until gtk_accel_map_unlock_path() has been called an equivalent number of times. Note that locking of individual accelerator paths is independent from locking the #GtkAccelGroup containing them. For runtime accelerator changes to be possible, both the accelerator path and its #GtkAccelGroup have to be unlocked.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">a valid accelerator path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="lookup_entry" c:identifier="gtk_accel_map_lookup_entry"> <doc xml:space="preserve">Looks up the accelerator entry for @accel_path and fills in @key.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @accel_path is known, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">a valid accelerator path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="key" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">the accelerator key to be filled in (optional)</doc> <type name="AccelKey" c:type="GtkAccelKey*"/> </parameter> </parameters> </function> <function name="save" c:identifier="gtk_accel_map_save"> <doc xml:space="preserve">Saves current accelerator specifications (accelerator path, key and modifiers) to @file_name. The file is written in a format suitable to be read back in by gtk_accel_map_load().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="file_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the file to contain accelerator specifications, in the GLib file name encoding</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="save_fd" c:identifier="gtk_accel_map_save_fd"> <doc xml:space="preserve">Filedescriptor variant of gtk_accel_map_save(). Note that the file descriptor will not be closed by this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="fd" transfer-ownership="none"> <doc xml:space="preserve">a valid writable file descriptor</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="unlock_path" c:identifier="gtk_accel_map_unlock_path" version="2.4"> <doc xml:space="preserve">Undoes the last call to gtk_accel_map_lock_path() on this @accel_path. Refer to gtk_accel_map_lock_path() for information about accelerator path locking.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">a valid accelerator path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <glib:signal name="changed" when="last" detailed="1" version="2.4"> <doc xml:space="preserve">Notifies of a change in the global accelerator map. The path is also used as the detail for the signal, so it is possible to connect to changed::`accel_path`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">the path of the accelerator that changed</doc> <type name="utf8" c:type="gchar*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">the key value for the new accelerator</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">the modifier mask for the new accelerator</doc> <type name="Gdk.ModifierType"/> </parameter> </parameters> </glib:signal> </class> <record name="AccelMapClass" c:type="GtkAccelMapClass" disguised="1" glib:is-gtype-struct-for="AccelMap"> </record> <callback name="AccelMapForeach" c:type="GtkAccelMapForeach"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data passed to gtk_accel_map_foreach() or gtk_accel_map_foreach_unfiltered()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">Accel path of the current accelerator</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">Key of the current accelerator</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">Modifiers of the current accelerator</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="changed" transfer-ownership="none"> <doc xml:space="preserve">Changed flag of the accelerator (if %TRUE, accelerator has changed during runtime and would need to be saved during an accelerator dump)</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> <class name="Accessible" c:symbol-prefix="accessible" c:type="GtkAccessible" parent="Atk.Object" glib:type-name="GtkAccessible" glib:get-type="gtk_accessible_get_type" glib:type-struct="AccessibleClass"> <doc xml:space="preserve">The #GtkAccessible class is the base class for accessible implementations for #GtkWidget subclasses. It is a thin wrapper around #AtkObject, which adds facilities for associating a widget with its accessible object. An accessible implementation for a third-party widget should derive from #GtkAccessible and implement the suitable interfaces from ATK, such as #AtkText or #AtkSelection. To establish the connection between the widget class and its corresponding acccessible implementation, override the get_accessible vfunc in #GtkWidgetClass.</doc> <virtual-method name="connect_widget_destroyed" invoker="connect_widget_destroyed" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">This function specifies the callback function to be called when the widget corresponding to a GtkAccessible is destroyed.</doc> <doc-deprecated xml:space="preserve">Use gtk_accessible_set_widget() and its vfuncs.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accessible" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccessible</doc> <type name="Accessible" c:type="GtkAccessible*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="widget_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accessible" transfer-ownership="none"> <type name="Accessible" c:type="GtkAccessible*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="widget_unset"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accessible" transfer-ownership="none"> <type name="Accessible" c:type="GtkAccessible*"/> </instance-parameter> </parameters> </virtual-method> <method name="connect_widget_destroyed" c:identifier="gtk_accessible_connect_widget_destroyed" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">This function specifies the callback function to be called when the widget corresponding to a GtkAccessible is destroyed.</doc> <doc-deprecated xml:space="preserve">Use gtk_accessible_set_widget() and its vfuncs.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accessible" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccessible</doc> <type name="Accessible" c:type="GtkAccessible*"/> </instance-parameter> </parameters> </method> <method name="get_widget" c:identifier="gtk_accessible_get_widget" version="2.22"> <doc xml:space="preserve">Gets the #GtkWidget corresponding to the #GtkAccessible. The returned widget does not have a reference added, so you do not need to unref it.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">pointer to the #GtkWidget corresponding to the #GtkAccessible, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="accessible" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccessible</doc> <type name="Accessible" c:type="GtkAccessible*"/> </instance-parameter> </parameters> </method> <method name="set_widget" c:identifier="gtk_accessible_set_widget" version="2.22"> <doc xml:space="preserve">Sets the #GtkWidget corresponding to the #GtkAccessible. @accessible will not hold a reference to @widget. It is the callerâs responsibility to ensure that when @widget is destroyed, the widget is unset by calling this function again with @widget set to %NULL.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accessible" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccessible</doc> <type name="Accessible" c:type="GtkAccessible*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget or %NULL to unset</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <property name="widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <field name="parent"> <type name="Atk.Object" c:type="AtkObject"/> </field> <field name="priv" readable="0" private="1"> <type name="AccessiblePrivate" c:type="GtkAccessiblePrivate*"/> </field> </class> <record name="AccessibleClass" c:type="GtkAccessibleClass" glib:is-gtype-struct-for="Accessible"> <field name="parent_class"> <type name="Atk.ObjectClass" c:type="AtkObjectClass"/> </field> <field name="connect_widget_destroyed"> <callback name="connect_widget_destroyed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accessible" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccessible</doc> <type name="Accessible" c:type="GtkAccessible*"/> </parameter> </parameters> </callback> </field> <field name="widget_set"> <callback name="widget_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accessible" transfer-ownership="none"> <type name="Accessible" c:type="GtkAccessible*"/> </parameter> </parameters> </callback> </field> <field name="widget_unset"> <callback name="widget_unset"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accessible" transfer-ownership="none"> <type name="Accessible" c:type="GtkAccessible*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="AccessiblePrivate" c:type="GtkAccessiblePrivate" disguised="1"> </record> <class name="Action" c:symbol-prefix="action" c:type="GtkAction" parent="GObject.Object" glib:type-name="GtkAction" glib:get-type="gtk_action_get_type" glib:type-struct="ActionClass"> <doc xml:space="preserve">> In GTK+ 3.10, GtkAction has been deprecated. Use #GAction > instead, and associate actions with #GtkActionable widgets. Use > #GMenuModel for creating menus with gtk_menu_new_from_model(). Actions represent operations that the user can be perform, along with some information how it should be presented in the interface. Each action provides methods to create icons, menu items and toolbar items representing itself. As well as the callback that is called when the action gets activated, the following also gets associated with the action: - a name (not translated, for path lookup) - a label (translated, for display) - an accelerator - whether label indicates a stock id - a tooltip (optional, translated) - a toolbar label (optional, shorter than label) The action will also have some state information: - visible (shown/hidden) - sensitive (enabled/disabled) Apart from regular actions, there are [toggle actions][GtkToggleAction], which can be toggled between two states and [radio actions][GtkRadioAction], of which only one in a group can be in the âactiveâ state. Other actions can be implemented as #GtkAction subclasses. Each action can have one or more proxy widgets. To act as an action proxy, widget needs to implement #GtkActivatable interface. Proxies mirror the state of the action and should change when the actionâs state changes. Properties that are always mirrored by proxies are #GtkAction:sensitive and #GtkAction:visible. #GtkAction:gicon, #GtkAction:icon-name, #GtkAction:label, #GtkAction:short-label and #GtkAction:stock-id properties are only mirorred if proxy widget has #GtkActivatable:use-action-appearance property set to %TRUE. When the proxy is activated, it should activate its action.</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_action_new" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkAction object. To add the action to a #GtkActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel(). See the [UI Definition section][XML-UI] for information on allowed action names.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, associating it to a widget with #GtkActionable or creating a #GtkMenu with gtk_menu_new_from_model()</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">A unique name for the action</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the label displayed in menu items and on buttons, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="tooltip" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a tooltip for the action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="stock_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the stock icon to display in widgets representing the action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="activate" invoker="activate" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Emits the âactivateâ signal on the specified action, if it isn't insensitive. This gets called by the proxy widgets when they get activated. It can also be used to manually activate an action.</doc> <doc-deprecated xml:space="preserve">Use g_action_group_activate_action() on a #GAction instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="connect_proxy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="proxy" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="create_menu" invoker="create_menu" version="2.12" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">If @action provides a #GtkMenu widget as a submenu for the menu item or the toolbar item it creates, this function returns an instance of that menu.</doc> <doc-deprecated xml:space="preserve">Use #GAction and #GMenuModel instead, and create a #GtkMenu with gtk_menu_new_from_model()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the menu item provided by the action, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="create_menu_item" invoker="create_menu_item" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a menu item widget that proxies for the given action.</doc> <doc-deprecated xml:space="preserve">Use g_menu_item_new() and associate it with a #GAction instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a menu item connected to the action.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="create_tool_item" invoker="create_tool_item" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a toolbar item widget that proxies for the given action.</doc> <doc-deprecated xml:space="preserve">Use a #GtkToolItem and associate it with a #GAction using gtk_actionable_set_action_name() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a toolbar item connected to the action.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="disconnect_proxy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="proxy" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <method name="activate" c:identifier="gtk_action_activate" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Emits the âactivateâ signal on the specified action, if it isn't insensitive. This gets called by the proxy widgets when they get activated. It can also be used to manually activate an action.</doc> <doc-deprecated xml:space="preserve">Use g_action_group_activate_action() on a #GAction instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="block_activate" c:identifier="gtk_action_block_activate" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Disable activation signals from the action This is needed when updating the state of your proxy #GtkActivatable widget could result in calling gtk_action_activate(), this is a convenience function to avoid recursing in those cases (updating toggle state for instance).</doc> <doc-deprecated xml:space="preserve">Use g_simple_action_set_enabled() to disable the #GSimpleAction instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="connect_accelerator" c:identifier="gtk_action_connect_accelerator" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Installs the accelerator for @action if @action has an accel path and group. See gtk_action_set_accel_path() and gtk_action_set_accel_group() Since multiple proxies may independently trigger the installation of the accelerator, the @action counts the number of times this function has been called and doesnât remove the accelerator until gtk_action_disconnect_accelerator() has been called as many times.</doc> <doc-deprecated xml:space="preserve">Use #GAction and the accelerator group on an associated #GtkMenu instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="create_icon" c:identifier="gtk_action_create_icon" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This function is intended for use by action implementations to create icons displayed in the proxy widgets.</doc> <doc-deprecated xml:space="preserve">Use g_menu_item_set_icon() to set an icon on a #GMenuItem, or gtk_container_add() to add a #GtkImage to a #GtkButton</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a widget that displays the icon for this action.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="icon_size" transfer-ownership="none"> <doc xml:space="preserve">the size of the icon (#GtkIconSize) that should be created.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="create_menu" c:identifier="gtk_action_create_menu" version="2.12" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">If @action provides a #GtkMenu widget as a submenu for the menu item or the toolbar item it creates, this function returns an instance of that menu.</doc> <doc-deprecated xml:space="preserve">Use #GAction and #GMenuModel instead, and create a #GtkMenu with gtk_menu_new_from_model()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the menu item provided by the action, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="create_menu_item" c:identifier="gtk_action_create_menu_item" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a menu item widget that proxies for the given action.</doc> <doc-deprecated xml:space="preserve">Use g_menu_item_new() and associate it with a #GAction instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a menu item connected to the action.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="create_tool_item" c:identifier="gtk_action_create_tool_item" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a toolbar item widget that proxies for the given action.</doc> <doc-deprecated xml:space="preserve">Use a #GtkToolItem and associate it with a #GAction using gtk_actionable_set_action_name() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a toolbar item connected to the action.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="disconnect_accelerator" c:identifier="gtk_action_disconnect_accelerator" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Undoes the effect of one call to gtk_action_connect_accelerator().</doc> <doc-deprecated xml:space="preserve">Use #GAction and the accelerator group on an associated #GtkMenu instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_accel_closure" c:identifier="gtk_action_get_accel_closure" version="2.8" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the accel closure for this action.</doc> <doc-deprecated xml:space="preserve">Use #GAction and #GtkMenu instead, which have no equivalent for getting the accel closure</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the accel closure for this action. The returned closure is owned by GTK+ and must not be unreffed or modified.</doc> <type name="GObject.Closure" c:type="GClosure*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_accel_path" c:identifier="gtk_action_get_accel_path" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the accel path for this action.</doc> <doc-deprecated xml:space="preserve">Use #GAction and the accelerator path on an associated #GtkMenu instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the accel path for this action, or %NULL if none is set. The returned string is owned by GTK+ and must not be freed or modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_always_show_image" c:identifier="gtk_action_get_always_show_image" version="2.20" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether @action's menu item proxies will always show their image, if available.</doc> <doc-deprecated xml:space="preserve">Use g_menu_item_get_attribute_value() on a #GMenuItem instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menu item proxies will always show their image</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_gicon" c:identifier="gtk_action_get_gicon" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the gicon of @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and g_menu_item_get_attribute_value() to get an icon from a #GMenuItem associated with a #GAction</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">The actionâs #GIcon if one is set.</doc> <type name="Gio.Icon" c:type="GIcon*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_icon_name" c:identifier="gtk_action_get_icon_name" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the icon name of @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and g_menu_item_get_attribute_value() to get an icon from a #GMenuItem associated with a #GAction</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the icon name</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_is_important" c:identifier="gtk_action_get_is_important" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Checks whether @action is important or not</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor whether labels are shown directly</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @action is important</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_label" c:identifier="gtk_action_get_label" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the label text of @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and get a label from a menu item with g_menu_item_get_attribute_value(). For #GtkActionable widgets, use the widget-specific API to get a label</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the label text</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_name" c:identifier="gtk_action_get_name" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the name of the action.</doc> <doc-deprecated xml:space="preserve">Use g_action_get_name() on a #GAction instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name of the action. The string belongs to GTK+ and should not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_proxies" c:identifier="gtk_action_get_proxies" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the proxy widgets for an action. See also gtk_activatable_get_related_action().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GSList of proxy widgets. The list is owned by GTK+ and must not be modified.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="Widget"/> </type> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_sensitive" c:identifier="gtk_action_get_sensitive" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether the action itself is sensitive. Note that this doesnât necessarily mean effective sensitivity. See gtk_action_is_sensitive() for that.</doc> <doc-deprecated xml:space="preserve">Use g_action_get_enabled() on a #GAction instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the action itself is sensitive.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_short_label" c:identifier="gtk_action_get_short_label" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the short label text of @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, which has no equivalent of short labels</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the short label text.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_stock_id" c:identifier="gtk_action_get_stock_id" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the stock id of @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, which has no equivalent of stock items</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the stock id</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip" c:identifier="gtk_action_get_tooltip" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the tooltip text of @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and get tooltips from associated #GtkActionable widgets with gtk_widget_get_tooltip_text()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the tooltip text</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_visible" c:identifier="gtk_action_get_visible" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether the action itself is visible. Note that this doesnât necessarily mean effective visibility. See gtk_action_is_sensitive() for that.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor the state of #GtkActionable widgets directly</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the action itself is visible.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_visible_horizontal" c:identifier="gtk_action_get_visible_horizontal" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Checks whether @action is visible when horizontal</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor the visibility of associated widgets and menu items directly</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @action is visible when horizontal</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="get_visible_vertical" c:identifier="gtk_action_get_visible_vertical" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Checks whether @action is visible when horizontal</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor the visibility of associated widgets and menu items directly</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @action is visible when horizontal</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="is_sensitive" c:identifier="gtk_action_is_sensitive" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether the action is effectively sensitive.</doc> <doc-deprecated xml:space="preserve">Use g_action_get_enabled() on a #GAction instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the action and its associated action group are both sensitive.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="is_visible" c:identifier="gtk_action_is_visible" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether the action is effectively visible.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor the state of #GtkActionable widgets directly</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the action and its associated action group are both visible.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <method name="set_accel_group" c:identifier="gtk_action_set_accel_group" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the #GtkAccelGroup in which the accelerator for this action will be installed.</doc> <doc-deprecated xml:space="preserve">Use #GAction and the accelerator group on an associated #GtkMenu instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="accel_group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkAccelGroup or %NULL</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> </parameters> </method> <method name="set_accel_path" c:identifier="gtk_action_set_accel_path" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the accel path for this action. All proxy widgets associated with the action will have this accel path, so that their accelerators are consistent. Note that @accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().</doc> <doc-deprecated xml:space="preserve">Use #GAction and the accelerator path on an associated #GtkMenu instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="accel_path" transfer-ownership="none"> <doc xml:space="preserve">the accelerator path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_always_show_image" c:identifier="gtk_action_set_always_show_image" version="2.20" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets whether @action's menu item proxies will ignore the #GtkSettings:gtk-menu-images setting and always show their image, if available. Use this if the menu item would be useless or hard to use without their image.</doc> <doc-deprecated xml:space="preserve">Use g_menu_item_set_icon() on a #GMenuItem instead, if the item should have an image</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="always_show" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if menuitem proxies should always show their image</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_gicon" c:identifier="gtk_action_set_gicon" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the icon of @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and g_menu_item_set_icon() to set an icon on a #GMenuItem associated with a #GAction, or gtk_container_add() to add a #GtkImage to a #GtkButton</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">the #GIcon to set</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> </parameters> </method> <method name="set_icon_name" c:identifier="gtk_action_set_icon_name" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the icon name on @action</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and g_menu_item_set_icon() to set an icon on a #GMenuItem associated with a #GAction, or gtk_container_add() to add a #GtkImage to a #GtkButton</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the icon name to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_is_important" c:identifier="gtk_action_set_is_important" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets whether the action is important, this attribute is used primarily by toolbar items to decide whether to show a label or not.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor whether labels are shown directly</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="is_important" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the action important</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_action_set_label" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the label of @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and set a label on a menu item with g_menu_item_set_label(). For #GtkActionable widgets, use the widget-specific API to set a label</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the label text to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_sensitive" c:identifier="gtk_action_set_sensitive" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the :sensitive property of the action to @sensitive. Note that this doesnât necessarily mean effective sensitivity. See gtk_action_is_sensitive() for that.</doc> <doc-deprecated xml:space="preserve">Use g_simple_action_set_enabled() on a #GSimpleAction instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="sensitive" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the action sensitive</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_short_label" c:identifier="gtk_action_set_short_label" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets a shorter label text on @action.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, which has no equivalent of short labels</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="short_label" transfer-ownership="none"> <doc xml:space="preserve">the label text to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_stock_id" c:identifier="gtk_action_set_stock_id" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the stock id on @action</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, which has no equivalent of stock items</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the stock id</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_tooltip" c:identifier="gtk_action_set_tooltip" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the tooltip text on @action</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and set tooltips on associated #GtkActionable widgets with gtk_widget_set_tooltip_text()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">the tooltip text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_visible" c:identifier="gtk_action_set_visible" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the :visible property of the action to @visible. Note that this doesnât necessarily mean effective visibility. See gtk_action_is_visible() for that.</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor the state of #GtkActionable widgets directly</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the action visible</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visible_horizontal" c:identifier="gtk_action_set_visible_horizontal" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets whether @action is visible when horizontal</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor the visibility of associated widgets and menu items directly</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="visible_horizontal" transfer-ownership="none"> <doc xml:space="preserve">whether the action is visible horizontally</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visible_vertical" c:identifier="gtk_action_set_visible_vertical" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets whether @action is visible when vertical</doc> <doc-deprecated xml:space="preserve">Use #GAction instead, and control and monitor the visibility of associated widgets and menu items directly</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> <parameter name="visible_vertical" transfer-ownership="none"> <doc xml:space="preserve">whether the action is visible vertically</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="unblock_activate" c:identifier="gtk_action_unblock_activate" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Reenable activation signals from the action</doc> <doc-deprecated xml:space="preserve">Use g_simple_action_set_enabled() to enable the #GSimpleAction instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </instance-parameter> </parameters> </method> <property name="action-group" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The GtkActionGroup this GtkAction is associated with, or NULL (for internal use).</doc> <doc-deprecated xml:space="preserve">Lookup the #GAction using g_action_map_lookup_action() instead</doc-deprecated> <type name="ActionGroup"/> </property> <property name="always-show-image" version="2.20" deprecated="1" deprecated-version="3.10" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, the action's menu item proxies will ignore the #GtkSettings:gtk-menu-images setting and always show their image, if available. Use this property if the menu item would be useless or hard to use without their image.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gicon" version="2.16" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GIcon displayed in the #GtkAction. Note that the stock icon is preferred, if the #GtkAction:stock-id property holds the id of an existing stock icon. This is an appearance property and thus only applies if #GtkActivatable:use-action-appearance is %TRUE.</doc> <doc-deprecated xml:space="preserve">Use the "icon" attribute on a #GMenuItem instead</doc-deprecated> <type name="Gio.Icon"/> </property> <property name="hide-if-empty" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">When TRUE, empty menu proxies for this action are hidden.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="icon-name" version="2.10" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The name of the icon from the icon theme. Note that the stock icon is preferred, if the #GtkAction:stock-id property holds the id of an existing stock icon, and the #GIcon is preferred if the #GtkAction:gicon property is set. This is an appearance property and thus only applies if #GtkActivatable:use-action-appearance is %TRUE.</doc> <doc-deprecated xml:space="preserve">Use the "icon" attribute on a #GMenuItem instead</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="is-important" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the action is considered important. When TRUE, toolitem proxies for this action show text in GTK_TOOLBAR_BOTH_HORIZ mode.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="label" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The label used for menu items and buttons that activate this action. If the label is %NULL, GTK+ uses the stock label specified via the stock-id property. This is an appearance property and thus only applies if #GtkActivatable:use-action-appearance is %TRUE.</doc> <doc-deprecated xml:space="preserve">Use the "label" attribute on #GMenuItem instead</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="name" deprecated="1" deprecated-version="3.10" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">A unique name for the action.</doc> <doc-deprecated xml:space="preserve">Use #GAction:name instead</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="sensitive" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the action is enabled.</doc> <doc-deprecated xml:space="preserve">Use #GAction:enabled and #GSimpleAction:enabled instead</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="short-label" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A shorter label that may be used on toolbar buttons. This is an appearance property and thus only applies if #GtkActivatable:use-action-appearance is %TRUE.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="stock-id" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The stock icon displayed in widgets representing this action. This is an appearance property and thus only applies if #GtkActivatable:use-action-appearance is %TRUE.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="tooltip" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A tooltip for this action.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_tooltip_text() instead</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="visible" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the action is visible.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible-horizontal" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the toolbar item is visible when the toolbar is in a horizontal orientation.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible-overflown" version="2.6" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">When %TRUE, toolitem proxies for this action are represented in the toolbar overflow menu.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible-vertical" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the toolbar item is visible when the toolbar is in a vertical orientation.</doc> <doc-deprecated xml:space="preserve">There is no corresponding replacement when using #GAction</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <field name="object"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="private_data" readable="0" private="1"> <type name="ActionPrivate" c:type="GtkActionPrivate*"/> </field> <glib:signal name="activate" when="first" no-recurse="1" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The "activate" signal is emitted when the action is activated.</doc> <doc-deprecated xml:space="preserve">Use #GSimpleAction::activate instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="ActionBar" c:symbol-prefix="action_bar" c:type="GtkActionBar" parent="Bin" glib:type-name="GtkActionBar" glib:get-type="gtk_action_bar_get_type" glib:type-struct="ActionBarClass"> <doc xml:space="preserve">GtkActionBar is designed to present contextual actions. It is expected to be displayed below the content and expand horizontally to fill the area. It allows placing children at the start or the end. In addition, it contains an internal centered box which is centered with respect to the full width of the box, even if the children at either side take up different amounts of space. # CSS nodes GtkActionBar has a single CSS node with name actionbar.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_action_bar_new" version="3.12"> <doc xml:space="preserve">Creates a new #GtkActionBar widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkActionBar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_center_widget" c:identifier="gtk_action_bar_get_center_widget" version="3.12"> <doc xml:space="preserve">Retrieves the center bar widget of the bar.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the center #GtkWidget or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="action_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionBar</doc> <type name="ActionBar" c:type="GtkActionBar*"/> </instance-parameter> </parameters> </method> <method name="pack_end" c:identifier="gtk_action_bar_pack_end" version="3.12"> <doc xml:space="preserve">Adds @child to @action_bar, packed with reference to the end of the @action_bar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_bar" transfer-ownership="none"> <doc xml:space="preserve">A #GtkActionBar</doc> <type name="ActionBar" c:type="GtkActionBar*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to be added to @action_bar</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="pack_start" c:identifier="gtk_action_bar_pack_start" version="3.12"> <doc xml:space="preserve">Adds @child to @action_bar, packed with reference to the start of the @action_bar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_bar" transfer-ownership="none"> <doc xml:space="preserve">A #GtkActionBar</doc> <type name="ActionBar" c:type="GtkActionBar*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to be added to @action_bar</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_center_widget" c:identifier="gtk_action_bar_set_center_widget" version="3.12"> <doc xml:space="preserve">Sets the center widget for the #GtkActionBar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionBar</doc> <type name="ActionBar" c:type="GtkActionBar*"/> </instance-parameter> <parameter name="center_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a widget to use for the center</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <field name="bin" readable="0" private="1"> <type name="Bin" c:type="GtkBin"/> </field> </class> <record name="ActionBarClass" c:type="GtkActionBarClass" glib:is-gtype-struct-for="ActionBar"> <field name="parent_class" readable="0" private="1"> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ActionBarPrivate" c:type="GtkActionBarPrivate" disguised="1"> </record> <record name="ActionClass" c:type="GtkActionClass" glib:is-gtype-struct-for="Action"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </callback> </field> <field name="menu_item_type" readable="0" private="1"> <type name="GType" c:type="GType"/> </field> <field name="toolbar_item_type" readable="0" private="1"> <type name="GType" c:type="GType"/> </field> <field name="create_menu_item"> <callback name="create_menu_item"> <return-value transfer-ownership="none"> <doc xml:space="preserve">a menu item connected to the action.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </callback> </field> <field name="create_tool_item"> <callback name="create_tool_item"> <return-value transfer-ownership="none"> <doc xml:space="preserve">a toolbar item connected to the action.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </callback> </field> <field name="connect_proxy"> <callback name="connect_proxy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="disconnect_proxy"> <callback name="disconnect_proxy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="create_menu"> <callback name="create_menu"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the menu item provided by the action, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAction</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ActionEntry" c:type="GtkActionEntry" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">#GtkActionEntry structs are used with gtk_action_group_add_actions() to construct actions.</doc> <field name="name" writable="1"> <doc xml:space="preserve">The name of the action.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="stock_id" writable="1"> <doc xml:space="preserve">The stock id for the action, or the name of an icon from the icon theme.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="label" writable="1"> <doc xml:space="preserve">The label for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain(). If @label is %NULL, the label of the stock item with id @stock_id is used.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="accelerator" writable="1"> <doc xml:space="preserve">The accelerator for the action, in the format understood by gtk_accelerator_parse().</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="tooltip" writable="1"> <doc xml:space="preserve">The tooltip for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="callback" writable="1"> <doc xml:space="preserve">The function to call when the action is activated.</doc> <type name="GObject.Callback" c:type="GCallback"/> </field> </record> <class name="ActionGroup" c:symbol-prefix="action_group" c:type="GtkActionGroup" parent="GObject.Object" glib:type-name="GtkActionGroup" glib:get-type="gtk_action_group_get_type" glib:type-struct="ActionGroupClass"> <doc xml:space="preserve">Actions are organised into groups. An action group is essentially a map from names to #GtkAction objects. All actions that would make sense to use in a particular context should be in a single group. Multiple action groups may be used for a particular user interface. In fact, it is expected that most nontrivial applications will make use of multiple groups. For example, in an application that can edit multiple documents, one group holding global actions (e.g. quit, about, new), and one group per document holding actions that act on that document (eg. save, cut/copy/paste, etc). Each windowâs menus would be constructed from a combination of two action groups. ## Accelerators ## {#Action-Accel} Accelerators are handled by the GTK+ accelerator map. All actions are assigned an accelerator path (which normally has the form `<Actions>/group-name/action-name`) and a shortcut is associated with this accelerator path. All menuitems and toolitems take on this accelerator path. The GTK+ accelerator map code makes sure that the correct shortcut is displayed next to the menu item. # GtkActionGroup as GtkBuildable # {#GtkActionGroup-BUILDER-UI} The #GtkActionGroup implementation of the #GtkBuildable interface accepts #GtkAction objects as <child> elements in UI definitions. Note that it is probably more common to define actions and action groups in the code, since they are directly related to what the code can do. The GtkActionGroup implementation of the GtkBuildable interface supports a custom <accelerator> element, which has attributes named âkeyâ and âmodifiersâ and allows to specify accelerators. This is similar to the <accelerator> element of #GtkWidget, the main difference is that it doesnât allow you to specify a signal. ## A #GtkDialog UI definition fragment. ## |[ <object class="GtkActionGroup" id="actiongroup"> <child> <object class="GtkAction" id="About"> <property name="name">About</property> <property name="stock_id">gtk-about</property> <signal handler="about_activate" name="activate"/> </object> <accelerator key="F1" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/> </child> </object> ]|</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_action_group_new" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkActionGroup object. The name of the action group is used when associating [keybindings][Action-Accel] with the actions.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the new #GtkActionGroup</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the action group.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="get_action" invoker="get_action" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up an action in the action group by name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action, or %NULL if no action by that name exists</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="action_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the action</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="add_action" c:identifier="gtk_action_group_add_action" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Adds an action object to the action group. Note that this function does not set up the accel path of the action, which can lead to problems if a user tries to modify the accelerator of a menuitem associated with the action. Therefore you must either set the accel path yourself with gtk_action_set_accel_path(), or use `gtk_action_group_add_action_with_accel (..., NULL)`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">an action</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </method> <method name="add_action_with_accel" c:identifier="gtk_action_group_add_action_with_accel" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Adds an action object to the action group and sets up the accelerator. If @accelerator is %NULL, attempts to use the accelerator associated with the stock_id of the action. Accel paths are set to `<Actions>/group-name/action-name`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action to add</doc> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="accelerator" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the accelerator for the action, in the format understood by gtk_accelerator_parse(), or "" for no accelerator, or %NULL to use the stock accelerator</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_actions" c:identifier="gtk_action_group_add_actions" version="2.4" introspectable="0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This is a convenience function to create a number of actions and add them to the action group. The âactivateâ signals of the actions are connected to the callbacks and their accel paths are set to `<Actions>/group-name/action-name`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="entries" transfer-ownership="none"> <doc xml:space="preserve">an array of action descriptions</doc> <array length="1" zero-terminated="0" c:type="GtkActionEntry*"> <type name="ActionEntry" c:type="GtkActionEntry"/> </array> </parameter> <parameter name="n_entries" transfer-ownership="none"> <doc xml:space="preserve">the number of entries</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to the action callbacks</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="add_actions_full" c:identifier="gtk_action_group_add_actions_full" version="2.4" introspectable="0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This variant of gtk_action_group_add_actions() adds a #GDestroyNotify callback for @user_data.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="entries" transfer-ownership="none"> <doc xml:space="preserve">an array of action descriptions</doc> <array length="1" zero-terminated="0" c:type="GtkActionEntry*"> <type name="ActionEntry" c:type="GtkActionEntry"/> </array> </parameter> <parameter name="n_entries" transfer-ownership="none"> <doc xml:space="preserve">the number of entries</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to the action callbacks</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">destroy notification callback for @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="add_radio_actions" c:identifier="gtk_action_group_add_radio_actions" version="2.4" introspectable="0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This is a convenience routine to create a group of radio actions and add them to the action group. The âchangedâ signal of the first radio action is connected to the @on_change callback and the accel paths of the actions are set to `<Actions>/group-name/action-name`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="entries" transfer-ownership="none"> <doc xml:space="preserve">an array of radio action descriptions</doc> <array length="1" zero-terminated="0" c:type="GtkRadioActionEntry*"> <type name="RadioActionEntry" c:type="GtkRadioActionEntry"/> </array> </parameter> <parameter name="n_entries" transfer-ownership="none"> <doc xml:space="preserve">the number of entries</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the value of the action to activate initially, or -1 if no action should be activated</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="on_change" transfer-ownership="none" closure="4"> <doc xml:space="preserve">the callback to connect to the changed signal</doc> <type name="GObject.Callback" c:type="GCallback"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to the action callbacks</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="add_radio_actions_full" c:identifier="gtk_action_group_add_radio_actions_full" version="2.4" introspectable="0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This variant of gtk_action_group_add_radio_actions() adds a #GDestroyNotify callback for @user_data.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="entries" transfer-ownership="none"> <doc xml:space="preserve">an array of radio action descriptions</doc> <array length="1" zero-terminated="0" c:type="GtkRadioActionEntry*"> <type name="RadioActionEntry" c:type="GtkRadioActionEntry"/> </array> </parameter> <parameter name="n_entries" transfer-ownership="none"> <doc xml:space="preserve">the number of entries</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the value of the action to activate initially, or -1 if no action should be activated</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="on_change" transfer-ownership="none" scope="notified" closure="4" destroy="5"> <doc xml:space="preserve">the callback to connect to the changed signal</doc> <type name="GObject.Callback" c:type="GCallback"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to the action callbacks</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notification callback for @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="add_toggle_actions" c:identifier="gtk_action_group_add_toggle_actions" version="2.4" introspectable="0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This is a convenience function to create a number of toggle actions and add them to the action group. The âactivateâ signals of the actions are connected to the callbacks and their accel paths are set to `<Actions>/group-name/action-name`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="entries" transfer-ownership="none"> <doc xml:space="preserve">an array of toggle action descriptions</doc> <array length="1" zero-terminated="0" c:type="GtkToggleActionEntry*"> <type name="ToggleActionEntry" c:type="GtkToggleActionEntry"/> </array> </parameter> <parameter name="n_entries" transfer-ownership="none"> <doc xml:space="preserve">the number of entries</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to the action callbacks</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="add_toggle_actions_full" c:identifier="gtk_action_group_add_toggle_actions_full" version="2.4" introspectable="0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This variant of gtk_action_group_add_toggle_actions() adds a #GDestroyNotify callback for @user_data.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="entries" transfer-ownership="none"> <doc xml:space="preserve">an array of toggle action descriptions</doc> <array length="1" zero-terminated="0" c:type="GtkToggleActionEntry*"> <type name="ToggleActionEntry" c:type="GtkToggleActionEntry"/> </array> </parameter> <parameter name="n_entries" transfer-ownership="none"> <doc xml:space="preserve">the number of entries</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to the action callbacks</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">destroy notification callback for @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="get_accel_group" c:identifier="gtk_action_group_get_accel_group" version="3.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the accelerator group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the accelerator group associated with this action group or %NULL if there is none.</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionGroup</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> </parameters> </method> <method name="get_action" c:identifier="gtk_action_group_get_action" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up an action in the action group by name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action, or %NULL if no action by that name exists</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="action_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the action</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_name" c:identifier="gtk_action_group_get_name" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the name of the action group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name of the action group.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> </parameters> </method> <method name="get_sensitive" c:identifier="gtk_action_group_get_sensitive" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns %TRUE if the group is sensitive. The constituent actions can only be logically sensitive (see gtk_action_is_sensitive()) if they are sensitive (see gtk_action_get_sensitive()) and their group is sensitive.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the group is sensitive.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> </parameters> </method> <method name="get_visible" c:identifier="gtk_action_group_get_visible" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns %TRUE if the group is visible. The constituent actions can only be logically visible (see gtk_action_is_visible()) if they are visible (see gtk_action_get_visible()) and their group is visible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the group is visible.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> </parameters> </method> <method name="list_actions" c:identifier="gtk_action_group_list_actions" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Lists the actions in the action group.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">an allocated list of the action objects in the action group</doc> <type name="GLib.List" c:type="GList*"> <type name="Action"/> </type> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> </parameters> </method> <method name="remove_action" c:identifier="gtk_action_group_remove_action" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Removes an action object from the action group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">an action</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </method> <method name="set_accel_group" c:identifier="gtk_action_group_set_accel_group" version="3.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the accelerator group to be used by every action in this group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionGroup</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="accel_group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkAccelGroup to set or %NULL</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> </parameters> </method> <method name="set_sensitive" c:identifier="gtk_action_group_set_sensitive" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Changes the sensitivity of @action_group</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="sensitive" transfer-ownership="none"> <doc xml:space="preserve">new sensitivity</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_translate_func" c:identifier="gtk_action_group_set_translate_func" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets a function to be used for translating the @label and @tooltip of #GtkActionEntrys added by gtk_action_group_add_actions(). If youâre using gettext(), it is enough to set the translation domain with gtk_action_group_set_translation_domain().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionGroup</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">a #GtkTranslateFunc</doc> <type name="TranslateFunc" c:type="GtkTranslateFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to be passed to @func and @notify</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="notify" transfer-ownership="none" scope="async"> <doc xml:space="preserve">a #GDestroyNotify function to be called when @action_group is destroyed and when the translation function is changed again</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_translation_domain" c:identifier="gtk_action_group_set_translation_domain" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the translation domain and uses g_dgettext() for translating the @label and @tooltip of #GtkActionEntrys added by gtk_action_group_add_actions(). If youâre not using gettext() for localization, see gtk_action_group_set_translate_func().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionGroup</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="domain" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the translation domain to use for g_dgettext() calls, or %NULL to use the domain set with textdomain()</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_visible" c:identifier="gtk_action_group_set_visible" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Changes the visible of @action_group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">new visiblity</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="translate_string" c:identifier="gtk_action_group_translate_string" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Translates a string using the function set with gtk_action_group_set_translate_func(). This is mainly intended for language bindings.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the translation of @string</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionGroup</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </instance-parameter> <parameter name="string" transfer-ownership="none"> <doc xml:space="preserve">a string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="accel-group" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The accelerator group the actions of this group should use.</doc> <type name="AccelGroup"/> </property> <property name="name" deprecated="1" deprecated-version="3.10" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">A name for the action.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="sensitive" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the action group is enabled.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the action group is visible.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="ActionGroupPrivate" c:type="GtkActionGroupPrivate*"/> </field> <glib:signal name="connect-proxy" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::connect-proxy signal is emitted after connecting a proxy to an action in the group. Note that the proxy may have been connected to a different action before. This is intended for simple customizations for which a custom action class would be too clumsy, e.g. showing tooltips for menuitems in the statusbar. #GtkUIManager proxies the signal and provides global notification just before any action is connected to a proxy, which is probably more convenient to use.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action</doc> <type name="Action"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">the proxy</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="disconnect-proxy" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::disconnect-proxy signal is emitted after disconnecting a proxy from an action in the group. #GtkUIManager proxies the signal and provides global notification just before any action is connected to a proxy, which is probably more convenient to use.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action</doc> <type name="Action"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">the proxy</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="post-activate" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::post-activate signal is emitted just after the @action in the @action_group is activated This is intended for #GtkUIManager to proxy the signal and provide global notification just after any action is activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action</doc> <type name="Action"/> </parameter> </parameters> </glib:signal> <glib:signal name="pre-activate" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::pre-activate signal is emitted just before the @action in the @action_group is activated This is intended for #GtkUIManager to proxy the signal and provide global notification just before any action is activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action</doc> <type name="Action"/> </parameter> </parameters> </glib:signal> </class> <record name="ActionGroupClass" c:type="GtkActionGroupClass" glib:is-gtype-struct-for="ActionGroup"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="get_action"> <callback name="get_action"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action, or %NULL if no action by that name exists</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </parameter> <parameter name="action_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the action</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ActionGroupPrivate" c:type="GtkActionGroupPrivate" disguised="1"> </record> <record name="ActionPrivate" c:type="GtkActionPrivate" disguised="1"> </record> <interface name="Actionable" c:symbol-prefix="actionable" c:type="GtkActionable" glib:type-name="GtkActionable" glib:get-type="gtk_actionable_get_type" glib:type-struct="ActionableInterface"> <doc xml:space="preserve">This interface provides a convenient way of associating widgets with actions on a #GtkApplicationWindow or #GtkApplication. It primarily consists of two properties: #GtkActionable:action-name and #GtkActionable:action-target. There are also some convenience APIs for setting these properties. The action will be looked up in action groups that are found among the widgets ancestors. Most commonly, these will be the actions with the âwin.â or âapp.â prefix that are associated with the #GtkApplicationWindow or #GtkApplication, but other action groups that are added with gtk_widget_insert_action_group() will be consulted as well.</doc> <prerequisite name="Widget"/> <virtual-method name="get_action_name" invoker="get_action_name" version="3.4"> <doc xml:space="preserve">Gets the action name for @actionable. See gtk_actionable_set_action_name() for more information.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the action name, or %NULL if none is set</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_action_target_value" invoker="get_action_target_value" version="3.4"> <doc xml:space="preserve">Gets the current target value of @actionable. See gtk_actionable_set_action_target_value() for more information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current target value</doc> <type name="GLib.Variant" c:type="GVariant*"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="set_action_name" invoker="set_action_name" version="3.4"> <doc xml:space="preserve">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 #GtkApplicationWindow or its associated #GtkApplication, respectively. This is the same form used for actions in the #GMenu associated with the window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> <parameter name="action_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an action name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_action_target_value" invoker="set_action_target_value" version="3.4"> <doc xml:space="preserve">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 #GAction 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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> <parameter name="target_value" transfer-ownership="none"> <doc xml:space="preserve">a #GVariant to set as the target value, or %NULL</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </virtual-method> <method name="get_action_name" c:identifier="gtk_actionable_get_action_name" version="3.4"> <doc xml:space="preserve">Gets the action name for @actionable. See gtk_actionable_set_action_name() for more information.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the action name, or %NULL if none is set</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> </parameters> </method> <method name="get_action_target_value" c:identifier="gtk_actionable_get_action_target_value" version="3.4"> <doc xml:space="preserve">Gets the current target value of @actionable. See gtk_actionable_set_action_target_value() for more information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current target value</doc> <type name="GLib.Variant" c:type="GVariant*"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> </parameters> </method> <method name="set_action_name" c:identifier="gtk_actionable_set_action_name" version="3.4"> <doc xml:space="preserve">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 #GtkApplicationWindow or its associated #GtkApplication, respectively. This is the same form used for actions in the #GMenu associated with the window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> <parameter name="action_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an action name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_action_target" c:identifier="gtk_actionable_set_action_target" version="3.4" introspectable="0"> <doc xml:space="preserve">Sets the target of an actionable widget. This is a convenience function that calls g_variant_new() for @format_string and uses the result to call 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 gtk_actionable_set_detailed_action_name ().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> <parameter name="format_string" transfer-ownership="none"> <doc xml:space="preserve">a GVariant format string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">arguments appropriate for @format_string</doc> <varargs/> </parameter> </parameters> </method> <method name="set_action_target_value" c:identifier="gtk_actionable_set_action_target_value" version="3.4"> <doc xml:space="preserve">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 #GAction 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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> <parameter name="target_value" transfer-ownership="none"> <doc xml:space="preserve">a #GVariant to set as the target value, or %NULL</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </method> <method name="set_detailed_action_name" c:identifier="gtk_actionable_set_detailed_action_name" version="3.4"> <doc xml:space="preserve">Sets the action-name and associated string target value of an actionable widget. @detailed_action_name is a string in the format accepted by g_action_parse_detailed_name(). (Note that prior to version 3.22.25, this function is only usable for actions with a simple "s" target, and @detailed_action_name must be of the form `"action::target"` where `action` is the action name and `target` is the string to use as the target.)</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </instance-parameter> <parameter name="detailed_action_name" transfer-ownership="none"> <doc xml:space="preserve">the detailed action name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="action-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="action-target" writable="1" transfer-ownership="none"> <type name="GLib.Variant"/> </property> </interface> <record name="ActionableInterface" c:type="GtkActionableInterface" glib:is-gtype-struct-for="Actionable"> <doc xml:space="preserve">The interface vtable for #GtkActionable.</doc> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="get_action_name"> <callback name="get_action_name"> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the action name, or %NULL if none is set</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </parameter> </parameters> </callback> </field> <field name="set_action_name"> <callback name="set_action_name"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </parameter> <parameter name="action_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an action name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="get_action_target_value"> <callback name="get_action_target_value"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current target value</doc> <type name="GLib.Variant" c:type="GVariant*"/> </return-value> <parameters> <parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </parameter> </parameters> </callback> </field> <field name="set_action_target_value"> <callback name="set_action_target_value"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="actionable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionable widget</doc> <type name="Actionable" c:type="GtkActionable*"/> </parameter> <parameter name="target_value" transfer-ownership="none"> <doc xml:space="preserve">a #GVariant to set as the target value, or %NULL</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </callback> </field> </record> <interface name="Activatable" c:symbol-prefix="activatable" c:type="GtkActivatable" glib:type-name="GtkActivatable" glib:get-type="gtk_activatable_get_type" glib:type-struct="ActivatableIface"> <doc xml:space="preserve">Activatable widgets can be connected to a #GtkAction and reflects the state of its action. A #GtkActivatable can also provide feedback through its action, as they are responsible for activating their related actions. # Implementing GtkActivatable When extending a class that is already #GtkActivatable; it is only necessary to implement the #GtkActivatable->sync_action_properties() and #GtkActivatable->update() methods and chain up to the parent implementation, however when introducing a new #GtkActivatable class; the #GtkActivatable:related-action and #GtkActivatable:use-action-appearance properties need to be handled by the implementor. Handling these properties is mostly a matter of installing the action pointer and boolean flag on your instance, and calling gtk_activatable_do_set_related_action() and gtk_activatable_sync_action_properties() at the appropriate times. ## A class fragment implementing #GtkActivatable |[<!-- language="C" --> enum { ... PROP_ACTIVATABLE_RELATED_ACTION, PROP_ACTIVATABLE_USE_ACTION_APPEARANCE } struct _FooBarPrivate { ... GtkAction *action; gboolean use_action_appearance; }; ... static void foo_bar_activatable_interface_init (GtkActivatableIface *iface); static void foo_bar_activatable_update (GtkActivatable *activatable, GtkAction *action, const gchar *property_name); static void foo_bar_activatable_sync_action_properties (GtkActivatable *activatable, GtkAction *action); ... static void foo_bar_class_init (FooBarClass *klass) { ... g_object_class_override_property (gobject_class, PROP_ACTIVATABLE_RELATED_ACTION, "related-action"); g_object_class_override_property (gobject_class, PROP_ACTIVATABLE_USE_ACTION_APPEARANCE, "use-action-appearance"); ... } static void foo_bar_activatable_interface_init (GtkActivatableIface *iface) { iface->update = foo_bar_activatable_update; iface->sync_action_properties = foo_bar_activatable_sync_action_properties; } ... Break the reference using gtk_activatable_do_set_related_action()... static void foo_bar_dispose (GObject *object) { FooBar *bar = FOO_BAR (object); FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar); ... if (priv->action) { gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (bar), NULL); priv->action = NULL; } G_OBJECT_CLASS (foo_bar_parent_class)->dispose (object); } ... Handle the ârelated-actionâ and âuse-action-appearanceâ properties ... static void foo_bar_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { FooBar *bar = FOO_BAR (object); FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar); switch (prop_id) { ... case PROP_ACTIVATABLE_RELATED_ACTION: foo_bar_set_related_action (bar, g_value_get_object (value)); break; case PROP_ACTIVATABLE_USE_ACTION_APPEARANCE: foo_bar_set_use_action_appearance (bar, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void foo_bar_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { FooBar *bar = FOO_BAR (object); FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar); switch (prop_id) { ... case PROP_ACTIVATABLE_RELATED_ACTION: g_value_set_object (value, priv->action); break; case PROP_ACTIVATABLE_USE_ACTION_APPEARANCE: g_value_set_boolean (value, priv->use_action_appearance); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void foo_bar_set_use_action_appearance (FooBar *bar, gboolean use_appearance) { FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar); if (priv->use_action_appearance != use_appearance) { priv->use_action_appearance = use_appearance; gtk_activatable_sync_action_properties (GTK_ACTIVATABLE (bar), priv->action); } } ... call gtk_activatable_do_set_related_action() and then assign the action pointer, no need to reference the action here since gtk_activatable_do_set_related_action() already holds a reference here for you... static void foo_bar_set_related_action (FooBar *bar, GtkAction *action) { FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar); if (priv->action == action) return; gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (bar), action); priv->action = action; } ... Selectively reset and update activatable depending on the use-action-appearance property ... static void gtk_button_activatable_sync_action_properties (GtkActivatable *activatable, GtkAction *action) { GtkButtonPrivate *priv = GTK_BUTTON_GET_PRIVATE (activatable); if (!action) return; if (gtk_action_is_visible (action)) gtk_widget_show (GTK_WIDGET (activatable)); else gtk_widget_hide (GTK_WIDGET (activatable)); gtk_widget_set_sensitive (GTK_WIDGET (activatable), gtk_action_is_sensitive (action)); ... if (priv->use_action_appearance) { if (gtk_action_get_stock_id (action)) foo_bar_set_stock (button, gtk_action_get_stock_id (action)); else if (gtk_action_get_label (action)) foo_bar_set_label (button, gtk_action_get_label (action)); ... } } static void foo_bar_activatable_update (GtkActivatable *activatable, GtkAction *action, const gchar *property_name) { FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (activatable); if (strcmp (property_name, "visible") == 0) { if (gtk_action_is_visible (action)) gtk_widget_show (GTK_WIDGET (activatable)); else gtk_widget_hide (GTK_WIDGET (activatable)); } else if (strcmp (property_name, "sensitive") == 0) gtk_widget_set_sensitive (GTK_WIDGET (activatable), gtk_action_is_sensitive (action)); ... if (!priv->use_action_appearance) return; if (strcmp (property_name, "stock-id") == 0) foo_bar_set_stock (button, gtk_action_get_stock_id (action)); else if (strcmp (property_name, "label") == 0) foo_bar_set_label (button, gtk_action_get_label (action)); ... } ]|</doc> <virtual-method name="sync_action_properties" invoker="sync_action_properties" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This is called to update the activatable completely, this is called internally when the #GtkActivatable:related-action property is set or unset and by the implementing class when #GtkActivatable:use-action-appearance changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActivatable</doc> <type name="Activatable" c:type="GtkActivatable*"/> </instance-parameter> <parameter name="action" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the related #GtkAction or %NULL</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </virtual-method> <virtual-method name="update"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="activatable" transfer-ownership="none"> <type name="Activatable" c:type="GtkActivatable*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="property_name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="do_set_related_action" c:identifier="gtk_activatable_do_set_related_action" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This is a utility function for #GtkActivatable implementors. When implementing #GtkActivatable you must call this when handling changes of the #GtkActivatable:related-action, and you must also use this to break references in #GObject->dispose(). This function adds a reference to the currently set related action for you, it also makes sure the #GtkActivatable->update() method is called when the related #GtkAction properties change and registers to the actionâs proxy list. > Be careful to call this before setting the local > copy of the #GtkAction property, since this function uses > gtk_activatable_get_related_action() to retrieve the > previous action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActivatable</doc> <type name="Activatable" c:type="GtkActivatable*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the #GtkAction to set</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </method> <method name="get_related_action" c:identifier="gtk_activatable_get_related_action" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the related #GtkAction for @activatable.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the related #GtkAction if one is set.</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <instance-parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActivatable</doc> <type name="Activatable" c:type="GtkActivatable*"/> </instance-parameter> </parameters> </method> <method name="get_use_action_appearance" c:identifier="gtk_activatable_get_use_action_appearance" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets whether this activatable should reset its layout and appearance when setting the related action or when the action changes appearance.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @activatable uses its actions appearance.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActivatable</doc> <type name="Activatable" c:type="GtkActivatable*"/> </instance-parameter> </parameters> </method> <method name="set_related_action" c:identifier="gtk_activatable_set_related_action" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the related action on the @activatable object. > #GtkActivatable implementors need to handle the #GtkActivatable:related-action > property and call gtk_activatable_do_set_related_action() when it changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActivatable</doc> <type name="Activatable" c:type="GtkActivatable*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the #GtkAction to set</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </method> <method name="set_use_action_appearance" c:identifier="gtk_activatable_set_use_action_appearance" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets whether this activatable should reset its layout and appearance when setting the related action or when the action changes appearance > #GtkActivatable implementors need to handle the > #GtkActivatable:use-action-appearance property and call > gtk_activatable_sync_action_properties() to update @activatable > if needed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActivatable</doc> <type name="Activatable" c:type="GtkActivatable*"/> </instance-parameter> <parameter name="use_appearance" transfer-ownership="none"> <doc xml:space="preserve">whether to use the actions appearance</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="sync_action_properties" c:identifier="gtk_activatable_sync_action_properties" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This is called to update the activatable completely, this is called internally when the #GtkActivatable:related-action property is set or unset and by the implementing class when #GtkActivatable:use-action-appearance changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActivatable</doc> <type name="Activatable" c:type="GtkActivatable*"/> </instance-parameter> <parameter name="action" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the related #GtkAction or %NULL</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </method> <property name="related-action" version="2.16" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The action that this activatable will activate and receive updates from for various states and possibly appearance. > #GtkActivatable implementors need to handle the this property and > call gtk_activatable_do_set_related_action() when it changes.</doc> <type name="Action"/> </property> <property name="use-action-appearance" version="2.16" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether this activatable should reset its layout and appearance when setting the related action or when the action changes appearance. See the #GtkAction documentation directly to find which properties should be ignored by the #GtkActivatable when this property is %FALSE. > #GtkActivatable implementors need to handle this property > and call gtk_activatable_sync_action_properties() on the activatable > widget when it changes.</doc> <type name="gboolean" c:type="gboolean"/> </property> </interface> <record name="ActivatableIface" c:type="GtkActivatableIface" glib:is-gtype-struct-for="Activatable" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">> This method can be called with a %NULL action at times.</doc> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="update"> <callback name="update"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="activatable" transfer-ownership="none"> <type name="Activatable" c:type="GtkActivatable*"/> </parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="property_name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="sync_action_properties"> <callback name="sync_action_properties"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActivatable</doc> <type name="Activatable" c:type="GtkActivatable*"/> </parameter> <parameter name="action" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the related #GtkAction or %NULL</doc> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </callback> </field> </record> <class name="Adjustment" c:symbol-prefix="adjustment" c:type="GtkAdjustment" parent="GObject.InitiallyUnowned" glib:type-name="GtkAdjustment" glib:get-type="gtk_adjustment_get_type" glib:type-struct="AdjustmentClass"> <doc xml:space="preserve">The #GtkAdjustment object represents a value which has an associated lower and upper bound, together with step and page increments, and a page size. It is used within several GTK+ widgets, including #GtkSpinButton, #GtkViewport, and #GtkRange (which is a base class for #GtkScrollbar and #GtkScale). The #GtkAdjustment object does not update the value itself. Instead it is left up to the owner of the #GtkAdjustment to control the value.</doc> <constructor name="new" c:identifier="gtk_adjustment_new"> <doc xml:space="preserve">Creates a new #GtkAdjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the initial value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="lower" transfer-ownership="none"> <doc xml:space="preserve">the minimum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="upper" transfer-ownership="none"> <doc xml:space="preserve">the maximum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="step_increment" transfer-ownership="none"> <doc xml:space="preserve">the step increment</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="page_increment" transfer-ownership="none"> <doc xml:space="preserve">the page increment</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="page_size" transfer-ownership="none"> <doc xml:space="preserve">the page size</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <virtual-method name="changed" invoker="changed" deprecated="1" deprecated-version="3.18"> <doc xml:space="preserve">Emits a #GtkAdjustment::changed signal from the #GtkAdjustment. This is typically called by the owner of the #GtkAdjustment after it has changed any of the #GtkAdjustment properties other than the value.</doc> <doc-deprecated xml:space="preserve">GTK+ emits #GtkAdjustment::changed itself whenever any of the properties (other than value) change</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="value_changed" invoker="value_changed" deprecated="1" deprecated-version="3.18"> <doc xml:space="preserve">Emits a #GtkAdjustment::value-changed signal from the #GtkAdjustment. This is typically called by the owner of the #GtkAdjustment after it has changed the #GtkAdjustment:value property.</doc> <doc-deprecated xml:space="preserve">GTK+ emits #GtkAdjustment::value-changed itself whenever the value changes</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </virtual-method> <method name="changed" c:identifier="gtk_adjustment_changed" deprecated="1" deprecated-version="3.18"> <doc xml:space="preserve">Emits a #GtkAdjustment::changed signal from the #GtkAdjustment. This is typically called by the owner of the #GtkAdjustment after it has changed any of the #GtkAdjustment properties other than the value.</doc> <doc-deprecated xml:space="preserve">GTK+ emits #GtkAdjustment::changed itself whenever any of the properties (other than value) change</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <method name="clamp_page" c:identifier="gtk_adjustment_clamp_page"> <doc xml:space="preserve">Updates the #GtkAdjustment:value property to ensure that the range between @lower and @upper is in the current page (i.e. between #GtkAdjustment:value and #GtkAdjustment:value + #GtkAdjustment:page-size). If the range is larger than the page size, then only the start of it will be in the current page. A #GtkAdjustment::value-changed signal will be emitted if the value is changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> <parameter name="lower" transfer-ownership="none"> <doc xml:space="preserve">the lower value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="upper" transfer-ownership="none"> <doc xml:space="preserve">the upper value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="configure" c:identifier="gtk_adjustment_configure" version="2.14"> <doc xml:space="preserve">Sets all properties of the adjustment at once. Use this function to avoid multiple emissions of the #GtkAdjustment::changed signal. See gtk_adjustment_set_lower() for an alternative way of compressing multiple emissions of #GtkAdjustment::changed into one.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="lower" transfer-ownership="none"> <doc xml:space="preserve">the new minimum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="upper" transfer-ownership="none"> <doc xml:space="preserve">the new maximum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="step_increment" transfer-ownership="none"> <doc xml:space="preserve">the new step increment</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="page_increment" transfer-ownership="none"> <doc xml:space="preserve">the new page increment</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="page_size" transfer-ownership="none"> <doc xml:space="preserve">the new page size</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="get_lower" c:identifier="gtk_adjustment_get_lower" version="2.14"> <doc xml:space="preserve">Retrieves the minimum value of the adjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current minimum value of the adjustment</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <method name="get_minimum_increment" c:identifier="gtk_adjustment_get_minimum_increment" version="3.2"> <doc xml:space="preserve">Gets the smaller of step increment and page increment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the minimum increment of @adjustment</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <method name="get_page_increment" c:identifier="gtk_adjustment_get_page_increment" version="2.14"> <doc xml:space="preserve">Retrieves the page increment of the adjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current page increment of the adjustment</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <method name="get_page_size" c:identifier="gtk_adjustment_get_page_size" version="2.14"> <doc xml:space="preserve">Retrieves the page size of the adjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current page size of the adjustment</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <method name="get_step_increment" c:identifier="gtk_adjustment_get_step_increment" version="2.14"> <doc xml:space="preserve">Retrieves the step increment of the adjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current step increment of the adjustment.</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <method name="get_upper" c:identifier="gtk_adjustment_get_upper" version="2.14"> <doc xml:space="preserve">Retrieves the maximum value of the adjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current maximum value of the adjustment</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <method name="get_value" c:identifier="gtk_adjustment_get_value"> <doc xml:space="preserve">Gets the current value of the adjustment. See gtk_adjustment_set_value().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current value of the adjustment</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <method name="set_lower" c:identifier="gtk_adjustment_set_lower" version="2.14"> <doc xml:space="preserve">Sets the minimum value of the adjustment. When setting multiple adjustment properties via their individual setters, multiple #GtkAdjustment::changed signals will be emitted. However, since the emission of the #GtkAdjustment::changed signal is tied to the emission of the #GObject::notify signals of the changed properties, itâs possible to compress the #GtkAdjustment::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 gtk_adjustment_configure() has the same effect of compressing #GtkAdjustment::changed emissions.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> <parameter name="lower" transfer-ownership="none"> <doc xml:space="preserve">the new minimum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_page_increment" c:identifier="gtk_adjustment_set_page_increment" version="2.14"> <doc xml:space="preserve">Sets the page increment of the adjustment. See gtk_adjustment_set_lower() about how to compress multiple emissions of the #GtkAdjustment::changed signal when setting multiple adjustment properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> <parameter name="page_increment" transfer-ownership="none"> <doc xml:space="preserve">the new page increment</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_page_size" c:identifier="gtk_adjustment_set_page_size" version="2.14"> <doc xml:space="preserve">Sets the page size of the adjustment. See gtk_adjustment_set_lower() about how to compress multiple emissions of the GtkAdjustment::changed signal when setting multiple adjustment properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> <parameter name="page_size" transfer-ownership="none"> <doc xml:space="preserve">the new page size</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_step_increment" c:identifier="gtk_adjustment_set_step_increment" version="2.14"> <doc xml:space="preserve">Sets the step increment of the adjustment. See gtk_adjustment_set_lower() about how to compress multiple emissions of the #GtkAdjustment::changed signal when setting multiple adjustment properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> <parameter name="step_increment" transfer-ownership="none"> <doc xml:space="preserve">the new step increment</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_upper" c:identifier="gtk_adjustment_set_upper" version="2.14"> <doc xml:space="preserve">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 gtk_adjustment_set_lower() about how to compress multiple emissions of the #GtkAdjustment::changed signal when setting multiple adjustment properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> <parameter name="upper" transfer-ownership="none"> <doc xml:space="preserve">the new maximum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_value" c:identifier="gtk_adjustment_set_value"> <doc xml:space="preserve">Sets the #GtkAdjustment value. The value is clamped to lie between #GtkAdjustment:lower and #GtkAdjustment:upper. Note that for adjustments which are used in a #GtkScrollbar, the effective range of allowed values goes from #GtkAdjustment:lower to #GtkAdjustment:upper - #GtkAdjustment:page-size.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="value_changed" c:identifier="gtk_adjustment_value_changed" deprecated="1" deprecated-version="3.18"> <doc xml:space="preserve">Emits a #GtkAdjustment::value-changed signal from the #GtkAdjustment. This is typically called by the owner of the #GtkAdjustment after it has changed the #GtkAdjustment:value property.</doc> <doc-deprecated xml:space="preserve">GTK+ emits #GtkAdjustment::value-changed itself whenever the value changes</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </instance-parameter> </parameters> </method> <property name="lower" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The minimum value of the adjustment.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="page-increment" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The page increment of the adjustment.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="page-size" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="step-increment" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The step increment of the adjustment.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="upper" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The maximum value of the adjustment. Note that values will be restricted by `upper - page-size` if the page-size property is nonzero.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="value" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The value of the adjustment.</doc> <type name="gdouble" c:type="gdouble"/> </property> <field name="parent_instance"> <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> </field> <field name="priv"> <type name="AdjustmentPrivate" c:type="GtkAdjustmentPrivate*"/> </field> <glib:signal name="changed" when="first" no-recurse="1"> <doc xml:space="preserve">Emitted when one or more of the #GtkAdjustment properties have been changed, other than the #GtkAdjustment:value property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="value-changed" when="first" no-recurse="1"> <doc xml:space="preserve">Emitted when the #GtkAdjustment:value property has been changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="AdjustmentClass" c:type="GtkAdjustmentClass" glib:is-gtype-struct-for="Adjustment"> <field name="parent_class"> <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </callback> </field> <field name="value_changed"> <callback name="value_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="AdjustmentPrivate" c:type="GtkAdjustmentPrivate" disguised="1"> </record> <enumeration name="Align" glib:type-name="GtkAlign" glib:get-type="gtk_align_get_type" c:type="GtkAlign"> <doc xml:space="preserve">Controls how a widget deals with extra space in a single (x or y) dimension. Alignment only matters if the widget receives a âtoo largeâ allocation, for example if you packed the widget with the #GtkWidget:expand flag inside a #GtkBox, 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. GTK_ALIGN_BASELINE support for it is optional for containers and widgets, and it is only supported for vertical alignment. When its not supported by a child or a container it is treated as @GTK_ALIGN_FILL.</doc> <member name="fill" value="0" c:identifier="GTK_ALIGN_FILL" glib:nick="fill"> <doc xml:space="preserve">stretch to fill all space if possible, center if no meaningful way to stretch</doc> </member> <member name="start" value="1" c:identifier="GTK_ALIGN_START" glib:nick="start"> <doc xml:space="preserve">snap to left or top side, leaving space on right or bottom</doc> </member> <member name="end" value="2" c:identifier="GTK_ALIGN_END" glib:nick="end"> <doc xml:space="preserve">snap to right or bottom side, leaving space on left or top</doc> </member> <member name="center" value="3" c:identifier="GTK_ALIGN_CENTER" glib:nick="center"> <doc xml:space="preserve">center natural width of widget inside the allocation</doc> </member> <member name="baseline" value="4" c:identifier="GTK_ALIGN_BASELINE" glib:nick="baseline"> <doc xml:space="preserve">align the widget according to the baseline. Since 3.10.</doc> </member> </enumeration> <class name="Alignment" c:symbol-prefix="alignment" c:type="GtkAlignment" parent="Bin" glib:type-name="GtkAlignment" glib:get-type="gtk_alignment_get_type" glib:type-struct="AlignmentClass"> <doc xml:space="preserve">The #GtkAlignment widget controls the alignment and size of its child widget. It has four settings: xscale, yscale, xalign, and yalign. The scale settings are used to specify how much the child widget should expand to fill the space allocated to the #GtkAlignment. The values can range from 0 (meaning the child doesnât expand at all) to 1 (meaning the child expands to fill all of the available space). The align settings are used to place the child widget within the available area. The values range from 0 (top or left) to 1 (bottom or right). Of course, if the scale settings are both set to 1, the alignment settings have no effect. GtkAlignment has been deprecated in 3.14 and should not be used in newly-written code. The desired effect can be achieved by using the #GtkWidget:halign, #GtkWidget:valign and #GtkWidget:margin properties on the child widget.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_alignment_new" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a new #GtkAlignment.</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget alignment and margin properties</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkAlignment</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">the horizontal alignment of the child widget, from 0 (left) to 1 (right).</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">the vertical alignment of the child widget, from 0 (top) to 1 (bottom).</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="xscale" transfer-ownership="none"> <doc xml:space="preserve">the amount that the child widget expands horizontally to fill up unused space, from 0 to 1. A value of 0 indicates that the child widget should never expand. A value of 1 indicates that the child widget will expand to fill all of the space allocated for the #GtkAlignment.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yscale" transfer-ownership="none"> <doc xml:space="preserve">the amount that the child widget expands vertically to fill up unused space, from 0 to 1. The values are similar to @xscale.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </constructor> <method name="get_padding" c:identifier="gtk_alignment_get_padding" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the padding on the different sides of the widget. See gtk_alignment_set_padding ().</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget alignment and margin properties</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="alignment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAlignment</doc> <type name="Alignment" c:type="GtkAlignment*"/> </instance-parameter> <parameter name="padding_top" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the padding for the top of the widget, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="padding_bottom" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the padding for the bottom of the widget, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="padding_left" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the padding for the left of the widget, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="padding_right" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the padding for the right of the widget, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> <method name="set" c:identifier="gtk_alignment_set" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the #GtkAlignment values.</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget alignment and margin properties</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="alignment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAlignment.</doc> <type name="Alignment" c:type="GtkAlignment*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">the horizontal alignment of the child widget, from 0 (left) to 1 (right).</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">the vertical alignment of the child widget, from 0 (top) to 1 (bottom).</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="xscale" transfer-ownership="none"> <doc xml:space="preserve">the amount that the child widget expands horizontally to fill up unused space, from 0 to 1. A value of 0 indicates that the child widget should never expand. A value of 1 indicates that the child widget will expand to fill all of the space allocated for the #GtkAlignment.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yscale" transfer-ownership="none"> <doc xml:space="preserve">the amount that the child widget expands vertically to fill up unused space, from 0 to 1. The values are similar to @xscale.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="set_padding" c:identifier="gtk_alignment_set_padding" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the padding on the different sides of the widget. The padding adds blank space to the sides of the widget. For instance, this can be used to indent the child widget towards the right by adding padding on the left.</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget alignment and margin properties</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="alignment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAlignment</doc> <type name="Alignment" c:type="GtkAlignment*"/> </instance-parameter> <parameter name="padding_top" transfer-ownership="none"> <doc xml:space="preserve">the padding at the top of the widget</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="padding_bottom" transfer-ownership="none"> <doc xml:space="preserve">the padding at the bottom of the widget</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="padding_left" transfer-ownership="none"> <doc xml:space="preserve">the padding at the left of the widget</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="padding_right" transfer-ownership="none"> <doc xml:space="preserve">the padding at the right of the widget.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <property name="bottom-padding" version="2.4" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The padding to insert at the bottom of the widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_bottom() instead</doc-deprecated> <type name="guint" c:type="guint"/> </property> <property name="left-padding" version="2.4" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The padding to insert at the left of the widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_start() instead</doc-deprecated> <type name="guint" c:type="guint"/> </property> <property name="right-padding" version="2.4" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The padding to insert at the right of the widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_end() instead</doc-deprecated> <type name="guint" c:type="guint"/> </property> <property name="top-padding" version="2.4" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The padding to insert at the top of the widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_top() instead</doc-deprecated> <type name="guint" c:type="guint"/> </property> <property name="xalign" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Horizontal position of child in available space. A value of 0.0 will flush the child left (or right, in RTL locales); a value of 1.0 will flush the child right (or left, in RTL locales).</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_halign() on the child instead</doc-deprecated> <type name="gfloat" c:type="gfloat"/> </property> <property name="xscale" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If available horizontal space is bigger than needed, how much of it to use for the child. A value of 0.0 means none; a value of 1.0 means all.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_hexpand() on the child instead</doc-deprecated> <type name="gfloat" c:type="gfloat"/> </property> <property name="yalign" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Vertical position of child in available space. A value of 0.0 will flush the child to the top; a value of 1.0 will flush the child to the bottom.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_valign() on the child instead</doc-deprecated> <type name="gfloat" c:type="gfloat"/> </property> <property name="yscale" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If available vertical space is bigger than needed, how much of it to use for the child. A value of 0.0 means none; a value of 1.0 means all.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_vexpand() on the child instead</doc-deprecated> <type name="gfloat" c:type="gfloat"/> </property> <field name="bin"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="AlignmentPrivate" c:type="GtkAlignmentPrivate*"/> </field> </class> <record name="AlignmentClass" c:type="GtkAlignmentClass" glib:is-gtype-struct-for="Alignment"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="AlignmentPrivate" c:type="GtkAlignmentPrivate" disguised="1"> </record> <interface name="AppChooser" c:symbol-prefix="app_chooser" c:type="GtkAppChooser" glib:type-name="GtkAppChooser" glib:get-type="gtk_app_chooser_get_type"> <doc xml:space="preserve">#GtkAppChooser is an interface that can be implemented by widgets which allow the user to choose an application (typically for the purpose of opening a file). The main objects that implement this interface are #GtkAppChooserWidget, #GtkAppChooserDialog and #GtkAppChooserButton. Applications are represented by GIO #GAppInfo objects here. GIO has a concept of recommended and fallback applications for a given content type. Recommended applications are those that claim to handle the content type itself, while fallback also includes applications that handle a more generic content type. GIO also knows the default and last-used application for a given content type. The #GtkAppChooserWidget provides detailed control over whether the shown list of applications should include default, recommended or fallback applications. To obtain the application that has been selected in a #GtkAppChooser, use gtk_app_chooser_get_app_info().</doc> <prerequisite name="Widget"/> <method name="get_app_info" c:identifier="gtk_app_chooser_get_app_info" version="3.0"> <doc xml:space="preserve">Returns the currently selected application.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GAppInfo for the currently selected application, or %NULL if none is selected. Free with g_object_unref()</doc> <type name="Gio.AppInfo" c:type="GAppInfo*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooser</doc> <type name="AppChooser" c:type="GtkAppChooser*"/> </instance-parameter> </parameters> </method> <method name="get_content_type" c:identifier="gtk_app_chooser_get_content_type" version="3.0"> <doc xml:space="preserve">Returns the current value of the #GtkAppChooser:content-type property.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the content type of @self. Free with g_free()</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooser</doc> <type name="AppChooser" c:type="GtkAppChooser*"/> </instance-parameter> </parameters> </method> <method name="refresh" c:identifier="gtk_app_chooser_refresh" version="3.0"> <doc xml:space="preserve">Reloads the list of applications.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooser</doc> <type name="AppChooser" c:type="GtkAppChooser*"/> </instance-parameter> </parameters> </method> <property name="content-type" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The content type of the #GtkAppChooser object. See [GContentType][gio-GContentType] for more information about content types.</doc> <type name="utf8" c:type="gchar*"/> </property> </interface> <class name="AppChooserButton" c:symbol-prefix="app_chooser_button" c:type="GtkAppChooserButton" parent="ComboBox" glib:type-name="GtkAppChooserButton" glib:get-type="gtk_app_chooser_button_get_type" glib:type-struct="AppChooserButtonClass"> <doc xml:space="preserve">The #GtkAppChooserButton is a widget that lets the user select an application. It implements the #GtkAppChooser interface. Initially, a #GtkAppChooserButton selects the first application in its list, which will either be the most-recently used application or, if #GtkAppChooserButton:show-default-item is %TRUE, the default application. The list of applications shown in a #GtkAppChooserButton includes the recommended applications for the given content type. When #GtkAppChooserButton:show-default-item is set, the default application is also included. To let the user chooser other applications, you can set the #GtkAppChooserButton:show-dialog-item property, which allows to open a full #GtkAppChooserDialog. It is possible to add custom items to the list, using gtk_app_chooser_button_append_custom_item(). These items cause the #GtkAppChooserButton::custom-item-activated signal to be emitted when they are selected. To track changes in the selected application, use the #GtkComboBox::changed signal.</doc> <implements name="Atk.ImplementorIface"/> <implements name="AppChooser"/> <implements name="Buildable"/> <implements name="CellEditable"/> <implements name="CellLayout"/> <constructor name="new" c:identifier="gtk_app_chooser_button_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkAppChooserButton for applications that can handle content of the given type.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkAppChooserButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="content_type" transfer-ownership="none"> <doc xml:space="preserve">the content type to show applications for</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="custom_item_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> <parameter name="item_name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="append_custom_item" c:identifier="gtk_app_chooser_button_append_custom_item" version="3.0"> <doc xml:space="preserve">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 #GtkAppChooserButton::custom-item-activated signal, to add a callback for the activation of a particular custom item in the list. See also gtk_app_chooser_button_append_separator().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the custom item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the label for the custom item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">the icon for the custom item</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> </parameters> </method> <method name="append_separator" c:identifier="gtk_app_chooser_button_append_separator" version="3.0"> <doc xml:space="preserve">Appends a separator to the list of applications that is shown in the popup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> </parameters> </method> <method name="get_heading" c:identifier="gtk_app_chooser_button_get_heading"> <doc xml:space="preserve">Returns the text to display at the top of the dialog.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the text to display at the top of the dialog, or %NULL, in which case a default text is displayed</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> </parameters> </method> <method name="get_show_default_item" c:identifier="gtk_app_chooser_button_get_show_default_item" version="3.2"> <doc xml:space="preserve">Returns the current value of the #GtkAppChooserButton:show-default-item property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of #GtkAppChooserButton:show-default-item</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> </parameters> </method> <method name="get_show_dialog_item" c:identifier="gtk_app_chooser_button_get_show_dialog_item" version="3.0"> <doc xml:space="preserve">Returns the current value of the #GtkAppChooserButton:show-dialog-item property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of #GtkAppChooserButton:show-dialog-item</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> </parameters> </method> <method name="set_active_custom_item" c:identifier="gtk_app_chooser_button_set_active_custom_item" version="3.0"> <doc xml:space="preserve">Selects a custom item previously added with gtk_app_chooser_button_append_custom_item(). Use gtk_app_chooser_refresh() to bring the selection to its initial state.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the custom item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_heading" c:identifier="gtk_app_chooser_button_set_heading"> <doc xml:space="preserve">Sets the text to display at the top of the dialog. If the heading is not set, the dialog displays a default text.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> <parameter name="heading" transfer-ownership="none"> <doc xml:space="preserve">a string containing Pango markup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_show_default_item" c:identifier="gtk_app_chooser_button_set_show_default_item" version="3.2"> <doc xml:space="preserve">Sets whether the dropdown menu of this button should show the default application for the given content type at top.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value for #GtkAppChooserButton:show-default-item</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_dialog_item" c:identifier="gtk_app_chooser_button_set_show_dialog_item" version="3.0"> <doc xml:space="preserve">Sets whether the dropdown menu of this button should show an entry to trigger a #GtkAppChooserDialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserButton</doc> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value for #GtkAppChooserButton:show-dialog-item</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="heading" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text to show at the top of the dialog that can be opened from the button. The string may contain Pango markup.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="show-default-item" version="3.2" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkAppChooserButton:show-default-item property determines whether the dropdown menu should show the default application on top for the provided content type.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-dialog-item" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkAppChooserButton:show-dialog-item property determines whether the dropdown menu should show an item that triggers a #GtkAppChooserDialog when clicked.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="ComboBox" c:type="GtkComboBox"/> </field> <field name="priv" readable="0" private="1"> <type name="AppChooserButtonPrivate" c:type="GtkAppChooserButtonPrivate*"/> </field> <glib:signal name="custom-item-activated" when="first" detailed="1"> <doc xml:space="preserve">Emitted when a custom item, previously added with gtk_app_chooser_button_append_custom_item(), is activated from the dropdown menu.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="item_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the activated item</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> </class> <record name="AppChooserButtonClass" c:type="GtkAppChooserButtonClass" glib:is-gtype-struct-for="AppChooserButton"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ComboBoxClass" c:type="GtkComboBoxClass"/> </field> <field name="custom_item_activated"> <callback name="custom_item_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="AppChooserButton" c:type="GtkAppChooserButton*"/> </parameter> <parameter name="item_name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="16"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <record name="AppChooserButtonPrivate" c:type="GtkAppChooserButtonPrivate" disguised="1"> </record> <class name="AppChooserDialog" c:symbol-prefix="app_chooser_dialog" c:type="GtkAppChooserDialog" parent="Dialog" glib:type-name="GtkAppChooserDialog" glib:get-type="gtk_app_chooser_dialog_get_type" glib:type-struct="AppChooserDialogClass"> <doc xml:space="preserve">#GtkAppChooserDialog shows a #GtkAppChooserWidget inside a #GtkDialog. Note that #GtkAppChooserDialog does not have any interesting methods of its own. Instead, you should get the embedded #GtkAppChooserWidget using gtk_app_chooser_dialog_get_widget() and call its methods if the generic #GtkAppChooser interface is not sufficient for your needs. To set the heading that is shown above the #GtkAppChooserWidget, use gtk_app_chooser_dialog_set_heading().</doc> <implements name="Atk.ImplementorIface"/> <implements name="AppChooser"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_app_chooser_dialog_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkAppChooserDialog for the provided #GFile, to allow the user to select an application for it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkAppChooserDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWindow, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags for this dialog</doc> <type name="DialogFlags" c:type="GtkDialogFlags"/> </parameter> <parameter name="file" transfer-ownership="none"> <doc xml:space="preserve">a #GFile</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </constructor> <constructor name="new_for_content_type" c:identifier="gtk_app_chooser_dialog_new_for_content_type" version="3.0"> <doc xml:space="preserve">Creates a new #GtkAppChooserDialog for the provided content type, to allow the user to select an application for it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkAppChooserDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWindow, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags for this dialog</doc> <type name="DialogFlags" c:type="GtkDialogFlags"/> </parameter> <parameter name="content_type" transfer-ownership="none"> <doc xml:space="preserve">a content type string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_heading" c:identifier="gtk_app_chooser_dialog_get_heading"> <doc xml:space="preserve">Returns the text to display at the top of the dialog.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the text to display at the top of the dialog, or %NULL, in which case a default text is displayed</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserDialog</doc> <type name="AppChooserDialog" c:type="GtkAppChooserDialog*"/> </instance-parameter> </parameters> </method> <method name="get_widget" c:identifier="gtk_app_chooser_dialog_get_widget" version="3.0"> <doc xml:space="preserve">Returns the #GtkAppChooserWidget of this dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkAppChooserWidget of @self</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserDialog</doc> <type name="AppChooserDialog" c:type="GtkAppChooserDialog*"/> </instance-parameter> </parameters> </method> <method name="set_heading" c:identifier="gtk_app_chooser_dialog_set_heading"> <doc xml:space="preserve">Sets the text to display at the top of the dialog. If the heading is not set, the dialog displays a default text.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserDialog</doc> <type name="AppChooserDialog" c:type="GtkAppChooserDialog*"/> </instance-parameter> <parameter name="heading" transfer-ownership="none"> <doc xml:space="preserve">a string containing Pango markup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="gfile" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The GFile used by the #GtkAppChooserDialog. The dialog's #GtkAppChooserWidget content type will be guessed from the file, if present.</doc> <type name="Gio.File"/> </property> <property name="heading" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text to show at the top of the dialog. The string may contain Pango markup.</doc> <type name="utf8" c:type="gchar*"/> </property> <field name="parent"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv" readable="0" private="1"> <type name="AppChooserDialogPrivate" c:type="GtkAppChooserDialogPrivate*"/> </field> </class> <record name="AppChooserDialogClass" c:type="GtkAppChooserDialogClass" glib:is-gtype-struct-for="AppChooserDialog"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="16"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <record name="AppChooserDialogPrivate" c:type="GtkAppChooserDialogPrivate" disguised="1"> </record> <class name="AppChooserWidget" c:symbol-prefix="app_chooser_widget" c:type="GtkAppChooserWidget" parent="Box" glib:type-name="GtkAppChooserWidget" glib:get-type="gtk_app_chooser_widget_get_type" glib:type-struct="AppChooserWidgetClass"> <doc xml:space="preserve">#GtkAppChooserWidget is a widget for selecting applications. It is the main building block for #GtkAppChooserDialog. Most applications only need to use the latter; but you can use this widget as part of a larger widget if you have special needs. #GtkAppChooserWidget offers detailed control over what applications are shown, using the #GtkAppChooserWidget:show-default, #GtkAppChooserWidget:show-recommended, #GtkAppChooserWidget:show-fallback, #GtkAppChooserWidget:show-other and #GtkAppChooserWidget:show-all properties. See the #GtkAppChooser documentation for more information about these groups of applications. To keep track of the selected application, use the #GtkAppChooserWidget::application-selected and #GtkAppChooserWidget::application-activated signals. # CSS nodes GtkAppChooserWidget has a single CSS node with name appchooser.</doc> <implements name="Atk.ImplementorIface"/> <implements name="AppChooser"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_app_chooser_widget_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkAppChooserWidget for applications that can handle content of the given type.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkAppChooserWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="content_type" transfer-ownership="none"> <doc xml:space="preserve">the content type to show applications for</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="application_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="app_info" transfer-ownership="none"> <type name="Gio.AppInfo" c:type="GAppInfo*"/> </parameter> </parameters> </virtual-method> <virtual-method name="application_selected"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="app_info" transfer-ownership="none"> <type name="Gio.AppInfo" c:type="GAppInfo*"/> </parameter> </parameters> </virtual-method> <virtual-method name="populate_popup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="menu" transfer-ownership="none"> <type name="Menu" c:type="GtkMenu*"/> </parameter> <parameter name="app_info" transfer-ownership="none"> <type name="Gio.AppInfo" c:type="GAppInfo*"/> </parameter> </parameters> </virtual-method> <method name="get_default_text" c:identifier="gtk_app_chooser_widget_get_default_text" version="3.0"> <doc xml:space="preserve">Returns the text that is shown if there are not applications that can handle the content type.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of #GtkAppChooserWidget:default-text</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> </parameters> </method> <method name="get_show_all" c:identifier="gtk_app_chooser_widget_get_show_all" version="3.0"> <doc xml:space="preserve">Returns the current value of the #GtkAppChooserWidget:show-all property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of #GtkAppChooserWidget:show-all</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> </parameters> </method> <method name="get_show_default" c:identifier="gtk_app_chooser_widget_get_show_default" version="3.0"> <doc xml:space="preserve">Returns the current value of the #GtkAppChooserWidget:show-default property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of #GtkAppChooserWidget:show-default</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> </parameters> </method> <method name="get_show_fallback" c:identifier="gtk_app_chooser_widget_get_show_fallback" version="3.0"> <doc xml:space="preserve">Returns the current value of the #GtkAppChooserWidget:show-fallback property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of #GtkAppChooserWidget:show-fallback</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> </parameters> </method> <method name="get_show_other" c:identifier="gtk_app_chooser_widget_get_show_other" version="3.0"> <doc xml:space="preserve">Returns the current value of the #GtkAppChooserWidget:show-other property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of #GtkAppChooserWidget:show-other</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> </parameters> </method> <method name="get_show_recommended" c:identifier="gtk_app_chooser_widget_get_show_recommended" version="3.0"> <doc xml:space="preserve">Returns the current value of the #GtkAppChooserWidget:show-recommended property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of #GtkAppChooserWidget:show-recommended</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> </parameters> </method> <method name="set_default_text" c:identifier="gtk_app_chooser_widget_set_default_text"> <doc xml:space="preserve">Sets the text that is shown if there are not applications that can handle the content type.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the new value for #GtkAppChooserWidget:default-text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_show_all" c:identifier="gtk_app_chooser_widget_set_show_all" version="3.0"> <doc xml:space="preserve">Sets whether the app chooser should show all applications in a flat list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value for #GtkAppChooserWidget:show-all</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_default" c:identifier="gtk_app_chooser_widget_set_show_default" version="3.0"> <doc xml:space="preserve">Sets whether the app chooser should show the default handler for the content type in a separate section.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value for #GtkAppChooserWidget:show-default</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_fallback" c:identifier="gtk_app_chooser_widget_set_show_fallback" version="3.0"> <doc xml:space="preserve">Sets whether the app chooser should show related applications for the content type in a separate section.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value for #GtkAppChooserWidget:show-fallback</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_other" c:identifier="gtk_app_chooser_widget_set_show_other" version="3.0"> <doc xml:space="preserve">Sets whether the app chooser should show applications which are unrelated to the content type.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value for #GtkAppChooserWidget:show-other</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_recommended" c:identifier="gtk_app_chooser_widget_set_show_recommended" version="3.0"> <doc xml:space="preserve">Sets whether the app chooser should show recommended applications for the content type in a separate section.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAppChooserWidget</doc> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value for #GtkAppChooserWidget:show-recommended</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="default-text" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkAppChooserWidget:default-text property determines the text that appears in the widget when there are no applications for the given content type. See also gtk_app_chooser_widget_set_default_text().</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="show-all" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">If the #GtkAppChooserWidget:show-all property is %TRUE, the app chooser presents all applications in a single list, without subsections for default, recommended or related applications.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-default" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The ::show-default property 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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-fallback" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkAppChooserWidget:show-fallback property determines whether the app chooser should show a section for fallback applications. If %FALSE, the fallback applications are listed among the other applications.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-other" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkAppChooserWidget:show-other property determines whether the app chooser should show a section for other applications.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-recommended" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkAppChooserWidget:show-recommended property determines whether the app chooser should show a section for recommended applications. If %FALSE, the recommended applications are listed among the other applications.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="AppChooserWidgetPrivate" c:type="GtkAppChooserWidgetPrivate*"/> </field> <glib:signal name="application-activated" when="first"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">the activated #GAppInfo</doc> <type name="Gio.AppInfo"/> </parameter> </parameters> </glib:signal> <glib:signal name="application-selected" when="first"> <doc xml:space="preserve">Emitted when an application item is selected from the widget's list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">the selected #GAppInfo</doc> <type name="Gio.AppInfo"/> </parameter> </parameters> </glib:signal> <glib:signal name="populate-popup" when="first"> <doc xml:space="preserve">Emitted when a context menu is about to popup over an application item. Clients can insert menu items into the provided #GtkMenu object in the callback of this signal; the context menu will be shown over the item if at least one item has been added to the menu.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenu to populate</doc> <type name="Menu"/> </parameter> <parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">the current #GAppInfo</doc> <type name="Gio.AppInfo"/> </parameter> </parameters> </glib:signal> </class> <record name="AppChooserWidgetClass" c:type="GtkAppChooserWidgetClass" glib:is-gtype-struct-for="AppChooserWidget"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="application_selected"> <callback name="application_selected"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </parameter> <parameter name="app_info" transfer-ownership="none"> <type name="Gio.AppInfo" c:type="GAppInfo*"/> </parameter> </parameters> </callback> </field> <field name="application_activated"> <callback name="application_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </parameter> <parameter name="app_info" transfer-ownership="none"> <type name="Gio.AppInfo" c:type="GAppInfo*"/> </parameter> </parameters> </callback> </field> <field name="populate_popup"> <callback name="populate_popup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="AppChooserWidget" c:type="GtkAppChooserWidget*"/> </parameter> <parameter name="menu" transfer-ownership="none"> <type name="Menu" c:type="GtkMenu*"/> </parameter> <parameter name="app_info" transfer-ownership="none"> <type name="Gio.AppInfo" c:type="GAppInfo*"/> </parameter> </parameters> </callback> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="16"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <record name="AppChooserWidgetPrivate" c:type="GtkAppChooserWidgetPrivate" disguised="1"> </record> <class name="Application" c:symbol-prefix="application" c:type="GtkApplication" parent="Gio.Application" glib:type-name="GtkApplication" glib:get-type="gtk_application_get_type" glib:type-struct="ApplicationClass"> <doc xml:space="preserve">#GtkApplication is a class that handles many important aspects of a GTK+ application in a convenient fashion, without enforcing a one-size-fits-all application model. Currently, GtkApplication handles GTK+ initialization, application uniqueness, session management, provides some basic scriptability and desktop shell integration by exporting actions and menus and manages a list of toplevel windows whose life-cycle is automatically tied to the life-cycle of your application. While GtkApplication works fine with plain #GtkWindows, it is recommended to use it together with #GtkApplicationWindow. When GDK threads are enabled, GtkApplication will acquire the GDK lock when invoking actions that arrive from other processes. The GDK lock is not touched for local action invocations. In order to have actions invoked in a predictable context it is therefore recommended that the GDK lock be held while invoking actions locally with g_action_group_activate_action(). The same applies to actions associated with #GtkApplicationWindow and to the âactivateâ and âopenâ #GApplication methods. ## Automatic resources ## {#automatic-resources} #GtkApplication will automatically load menus from the #GtkBuilder resource located at "gtk/menus.ui", relative to the application's resource base path (see g_application_set_resource_base_path()). The menu with the ID "app-menu" is taken as the application's app menu and the menu with the ID "menubar" is taken as the application's menubar. Additional menus (most interesting submenus) can be named and accessed via gtk_application_get_menu_by_id() which allows for dynamic population of a part of the menu structure. If the resources "gtk/menus-appmenu.ui" or "gtk/menus-traditional.ui" are present then these files will be used in preference, depending on the value of gtk_application_prefers_app_menu(). If the resource "gtk/menus-common.ui" is present it will be loaded as well. This is useful for storing items that are referenced from both "gtk/menus-appmenu.ui" and "gtk/menus-traditional.ui". It is also possible to provide the menus manually using gtk_application_set_app_menu() and gtk_application_set_menubar(). #GtkApplication will also automatically setup an icon search path for the default icon theme by appending "icons" to the resource base path. This allows your application to easily store its icons as resources. See gtk_icon_theme_add_resource_path() for more information. If there is a resource located at "gtk/help-overlay.ui" which defines a #GtkShortcutsWindow with ID "help_overlay" then GtkApplication associates an instance of this shortcuts window with each #GtkApplicationWindow and sets up keyboard accelerators (Control-F1 and Control-?) to open it. To create a menu item that displays the shortcuts window, associate the item with the action win.show-help-overlay. ## A simple application ## {#gtkapplication} [A simple example](https://git.gnome.org/browse/gtk+/tree/examples/bp/bloatpad.c) GtkApplication optionally registers with a session manager of the users session (if you set the #GtkApplication:register-session property) and offers various functionality related to the session life-cycle. An application can block various ways to end the session with the gtk_application_inhibit() function. Typical use cases for this kind of inhibiting are long-running, uninterruptible operations, such as burning a CD or performing a disk backup. The session manager may not honor the inhibitor, but it can be expected to inform the user about the negative consequences of ending the session while inhibitors are present. ## See Also ## {#seealso} [HowDoI: Using GtkApplication](https://wiki.gnome.org/HowDoI/GtkApplication), [Getting Started with GTK+: Basics](https://developer.gnome.org/gtk3/stable/gtk-getting-started.html#id-1.2.3.3)</doc> <implements name="Gio.ActionGroup"/> <implements name="Gio.ActionMap"/> <constructor name="new" c:identifier="gtk_application_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkApplication instance. When using #GtkApplication, it is not necessary to call gtk_init() manually. It is called as soon as the application gets registered as the primary instance. Concretely, gtk_init() is called in the default handler for the #GApplication::startup signal. Therefore, #GtkApplication subclasses should chain up in their #GApplication::startup handler before using any GTK+ API. Note that commandline arguments are not passed to gtk_init(). All GTK+ functionality that is available via commandline arguments can also be achieved by setting suitable environment variables such as `G_DEBUG`, so this should not be a big problem. If you absolutely must support GTK+ commandline arguments, you can explicitly call gtk_init() before creating the application instance. If non-%NULL, the application ID 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. A null application ID is only allowed with GTK+ 3.6 or later.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkApplication instance</doc> <type name="Application" c:type="GtkApplication*"/> </return-value> <parameters> <parameter name="application_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The application ID.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the application flags</doc> <type name="Gio.ApplicationFlags" c:type="GApplicationFlags"/> </parameter> </parameters> </constructor> <virtual-method name="window_added"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </virtual-method> <virtual-method name="window_removed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </virtual-method> <method name="add_accelerator" c:identifier="gtk_application_add_accelerator" version="3.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Installs an accelerator that will cause the named action to be activated when the key combination specificed by @accelerator is pressed. @accelerator must be a string that can be parsed by gtk_accelerator_parse(), e.g. "<Primary>q" or â<Control><Alt>pâ. @action_name must be the name of an action as it would be used in the app menu, i.e. actions that have been added to the application are referred to with an âapp.â prefix, and window-specific actions with a âwin.â prefix. GtkApplication also extracts accelerators out of âaccelâ attributes in the #GMenuModels passed to gtk_application_set_app_menu() and gtk_application_set_menubar(), which is usually more convenient than calling this function for each accelerator.</doc> <doc-deprecated xml:space="preserve">Use gtk_application_set_accels_for_action() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="accelerator" transfer-ownership="none"> <doc xml:space="preserve">accelerator string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="action_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the action to activate</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parameter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">parameter to pass when activating the action, or %NULL if the action does not accept an activation parameter</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </method> <method name="add_window" c:identifier="gtk_application_add_window" version="3.0"> <doc xml:space="preserve">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 #GtkWindow: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 gtk_application_remove_window(). GTK+ will keep the @application running as long as it has any windows.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <method name="get_accels_for_action" c:identifier="gtk_application_get_accels_for_action" version="3.12"> <doc xml:space="preserve">Gets the accelerators that are currently associated with the given action.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">accelerators for @detailed_action_name, as a %NULL-terminated array. Free with g_strfreev() when no longer needed</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="detailed_action_name" transfer-ownership="none"> <doc xml:space="preserve">a detailed action name, specifying an action and target to obtain accelerators for</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_actions_for_accel" c:identifier="gtk_application_get_actions_for_accel" version="3.14"> <doc xml:space="preserve">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 gtk_accelerator_parse() first.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a %NULL-terminated array of actions for @accel</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="accel" transfer-ownership="none"> <doc xml:space="preserve">an accelerator that can be parsed by gtk_accelerator_parse()</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_active_window" c:identifier="gtk_application_get_active_window" version="3.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the active window, or %NULL if there isn't one.</doc> <type name="Window" c:type="GtkWindow*"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> </parameters> </method> <method name="get_app_menu" c:identifier="gtk_application_get_app_menu" version="3.4"> <doc xml:space="preserve">Returns the menu model that has been set with gtk_application_set_app_menu().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the application menu of @application or %NULL if no application menu has been set.</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> </parameters> </method> <method name="get_menu_by_id" c:identifier="gtk_application_get_menu_by_id" version="3.14"> <doc xml:space="preserve">Gets a menu from automatically loaded resources. See [Automatic resources][automatic-resources] for more information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Gets the menu with the given id from the automatically loaded resources</doc> <type name="Gio.Menu" c:type="GMenu*"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="id" transfer-ownership="none"> <doc xml:space="preserve">the id of the menu to look up</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_menubar" c:identifier="gtk_application_get_menubar" version="3.4"> <doc xml:space="preserve">Returns the menu model that has been set with gtk_application_set_menubar().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the menubar for windows of @application</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> </parameters> </method> <method name="get_window_by_id" c:identifier="gtk_application_get_window_by_id" version="3.6"> <doc xml:space="preserve">Returns the #GtkApplicationWindow with the given ID. The ID of a #GtkApplicationWindow can be retrieved with gtk_application_window_get_id().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the window with ID @id, or %NULL if there is no window with this ID</doc> <type name="Window" c:type="GtkWindow*"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="id" transfer-ownership="none"> <doc xml:space="preserve">an identifier number</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="get_windows" c:identifier="gtk_application_get_windows" version="3.0"> <doc xml:space="preserve">Gets a list of the #GtkWindows 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GList of #GtkWindow</doc> <type name="GLib.List" c:type="GList*"> <type name="Window"/> </type> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> </parameters> </method> <method name="inhibit" c:identifier="gtk_application_inhibit" version="3.4"> <doc xml:space="preserve">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 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. Reasons 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A non-zero cookie that is used to uniquely identify this request. It should be used as an argument to 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.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">the #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWindow, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">what types of actions should be inhibited</doc> <type name="ApplicationInhibitFlags" c:type="GtkApplicationInhibitFlags"/> </parameter> <parameter name="reason" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a short, human-readable string that explains why these operations are inhibited</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="is_inhibited" c:identifier="gtk_application_is_inhibited" version="3.4"> <doc xml:space="preserve">Determines if any of the actions specified in @flags are currently inhibited (possibly by another application). Note that this information may not be available (for example when the application is running in a sandbox).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if any of the actions specified in @flags are inhibited</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">the #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">what types of actions should be queried</doc> <type name="ApplicationInhibitFlags" c:type="GtkApplicationInhibitFlags"/> </parameter> </parameters> </method> <method name="list_action_descriptions" c:identifier="gtk_application_list_action_descriptions" version="3.12"> <doc xml:space="preserve">Lists the detailed action names which have associated accelerators. See gtk_application_set_accels_for_action().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a %NULL-terminated array of strings, free with g_strfreev() when done</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> </parameters> </method> <method name="prefers_app_menu" c:identifier="gtk_application_prefers_app_menu" version="3.14"> <doc xml:space="preserve">Determines if the desktop environment in which the application is running would prefer an application menu be shown. If this function returns %TRUE then the application should call gtk_application_set_app_menu() with the contents of an application menu, which will be shown by the desktop environment. If it returns %FALSE then you should consider using an alternate approach, such as a menubar. The value returned by this function is purely advisory and you are free to ignore it. If you call gtk_application_set_app_menu() even if the desktop environment doesn't support app menus, then a fallback will be provided. Applications are similarly free not to set an app menu even if the desktop environment wants to show one. In that case, a fallback will also be created by the desktop environment (GNOME, for example, uses a menu with only a "Quit" item in it). The value returned by this function never changes. Once it returns a particular value, it is guaranteed to always return the same value. You may only call this function after the application has been registered and after the base startup handler has run. You're most likely to want to use this from your own startup handler. It may also make sense to consult this function while constructing UI (in activate, open or an action activation handler) in order to determine if you should show a gear menu or not. This function will return %FALSE on Mac OS and a default app menu will be created automatically with the "usual" contents of that menu typical to most Mac OS applications. If you call gtk_application_set_app_menu() anyway, then this menu will be replaced with your own.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if you should set an app menu</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> </parameters> </method> <method name="remove_accelerator" c:identifier="gtk_application_remove_accelerator" version="3.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Removes an accelerator that has been previously added with gtk_application_add_accelerator().</doc> <doc-deprecated xml:space="preserve">Use gtk_application_set_accels_for_action() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="action_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the action to activate</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parameter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">parameter to pass when activating the action, or %NULL if the action does not accept an activation parameter</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </method> <method name="remove_window" c:identifier="gtk_application_remove_window" version="3.0"> <doc xml:space="preserve">Remove a window from @application. If @window belongs to @application then this call is equivalent to setting the #GtkWindow:application property of @window to %NULL. The application may stop running as a result of a call to this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <method name="set_accels_for_action" c:identifier="gtk_application_set_accels_for_action" version="3.12"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="detailed_action_name" transfer-ownership="none"> <doc xml:space="preserve">a detailed action name, specifying an action and target to associate accelerators with</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accels" transfer-ownership="none"> <doc xml:space="preserve">a list of accelerators in the format understood by gtk_accelerator_parse()</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> </parameters> </method> <method name="set_app_menu" c:identifier="gtk_application_set_app_menu" version="3.4"> <doc xml:space="preserve">Sets or unsets the application menu for @application. 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. The application menu is a single menu containing items that typically impact the application as a whole, rather than acting on a specific window or document. For example, you would expect to see âPreferencesâ or âQuitâ in an application menu, but not âSaveâ or âPrintâ. If supported, the application menu will be rendered by the desktop environment. Use the base #GActionMap interface to add actions, to respond to the user selecting these menu items.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="app_menu" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GMenuModel, or %NULL</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </parameter> </parameters> </method> <method name="set_menubar" c:identifier="gtk_application_set_menubar" version="3.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="menubar" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GMenuModel, or %NULL</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </parameter> </parameters> </method> <method name="uninhibit" c:identifier="gtk_application_uninhibit" version="3.4"> <doc xml:space="preserve">Removes an inhibitor that has been established with gtk_application_inhibit(). Inhibitors are also cleared when the application exits.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">the #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </instance-parameter> <parameter name="cookie" transfer-ownership="none"> <doc xml:space="preserve">a cookie that was returned by gtk_application_inhibit()</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <property name="active-window" transfer-ownership="none"> <type name="Window"/> </property> <property name="app-menu" writable="1" transfer-ownership="none"> <type name="Gio.MenuModel"/> </property> <property name="menubar" writable="1" transfer-ownership="none"> <type name="Gio.MenuModel"/> </property> <property name="register-session" version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Set this property to %TRUE to register with the session manager.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="Gio.Application" c:type="GApplication"/> </field> <field name="priv" readable="0" private="1"> <type name="ApplicationPrivate" c:type="GtkApplicationPrivate*"/> </field> <glib:signal name="window-added" when="first" version="3.2"> <doc xml:space="preserve">Emitted when a #GtkWindow is added to @application through gtk_application_add_window().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">the newly-added #GtkWindow</doc> <type name="Window"/> </parameter> </parameters> </glib:signal> <glib:signal name="window-removed" when="first" version="3.2"> <doc xml:space="preserve">Emitted when a #GtkWindow is removed from @application, either as a side-effect of being destroyed or explicitly through gtk_application_remove_window().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWindow that is being removed</doc> <type name="Window"/> </parameter> </parameters> </glib:signal> </class> <record name="ApplicationClass" c:type="GtkApplicationClass" glib:is-gtype-struct-for="Application"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="Gio.ApplicationClass" c:type="GApplicationClass"/> </field> <field name="window_added"> <callback name="window_added"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="application" transfer-ownership="none"> <type name="Application" c:type="GtkApplication*"/> </parameter> <parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </callback> </field> <field name="window_removed"> <callback name="window_removed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="application" transfer-ownership="none"> <type name="Application" c:type="GtkApplication*"/> </parameter> <parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </callback> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="12"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <bitfield name="ApplicationInhibitFlags" version="3.4" glib:type-name="GtkApplicationInhibitFlags" glib:get-type="gtk_application_inhibit_flags_get_type" c:type="GtkApplicationInhibitFlags"> <doc xml:space="preserve">Types of user actions that may be blocked by gtk_application_inhibit().</doc> <member name="logout" value="1" c:identifier="GTK_APPLICATION_INHIBIT_LOGOUT" glib:nick="logout"> <doc xml:space="preserve">Inhibit ending the user session by logging out or by shutting down the computer</doc> </member> <member name="switch" value="2" c:identifier="GTK_APPLICATION_INHIBIT_SWITCH" glib:nick="switch"> <doc xml:space="preserve">Inhibit user switching</doc> </member> <member name="suspend" value="4" c:identifier="GTK_APPLICATION_INHIBIT_SUSPEND" glib:nick="suspend"> <doc xml:space="preserve">Inhibit suspending the session or computer</doc> </member> <member name="idle" value="8" c:identifier="GTK_APPLICATION_INHIBIT_IDLE" glib:nick="idle"> <doc xml:space="preserve">Inhibit the session being marked as idle (and possibly locked)</doc> </member> </bitfield> <record name="ApplicationPrivate" c:type="GtkApplicationPrivate" disguised="1"> </record> <class name="ApplicationWindow" c:symbol-prefix="application_window" c:type="GtkApplicationWindow" parent="Window" glib:type-name="GtkApplicationWindow" glib:get-type="gtk_application_window_get_type" glib:type-struct="ApplicationWindowClass"> <doc xml:space="preserve">#GtkApplicationWindow is a #GtkWindow subclass that offers some extra functionality for better integration with #GtkApplication features. Notably, it can handle both the application menu as well as the menubar. See gtk_application_set_app_menu() and gtk_application_set_menubar(). This class implements the #GActionGroup and #GActionMap interfaces, to let you add window-specific actions that will be exported by the associated #GtkApplication, together with its application-wide actions. Window-specific actions are prefixed with the âwin.â prefix and application-wide actions are prefixed with the âapp.â prefix. Actions must be addressed with the prefixed name when referring to them from a #GMenuModel. Note that widgets that are placed inside a #GtkApplicationWindow can also activate these actions, if they implement the #GtkActionable interface. As with #GtkApplication, the GDK lock will be acquired when processing actions arriving from other processes and should therefore be held when activating actions locally (if GDK threads are enabled). The settings #GtkSettings:gtk-shell-shows-app-menu and #GtkSettings:gtk-shell-shows-menubar tell GTK+ whether the desktop environment is showing the application menu and menubar models outside the application as part of the desktop shell. For instance, on OS X, both menus will be displayed remotely; on Windows neither will be. gnome-shell (starting with version 3.4) will display the application menu, but not the menubar. If the desktop environment does not display the menubar, then #GtkApplicationWindow will automatically show a #GtkMenuBar for it. This behaviour can be overridden with the #GtkApplicationWindow:show-menubar property. If the desktop environment does not display the application menu, then it will automatically be included in the menubar or in the windows client-side decorations. ## A GtkApplicationWindow with a menubar |[<!-- language="C" --> GtkApplication *app = gtk_application_new ("org.gtk.test", 0); GtkBuilder *builder = gtk_builder_new_from_string ( "<interface>" " <menu id='menubar'>" " <submenu label='_Edit'>" " <item label='_Copy' action='win.copy'/>" " <item label='_Paste' action='win.paste'/>" " </submenu>" " </menu>" "</interface>", -1); GMenuModel *menubar = G_MENU_MODEL (gtk_builder_get_object (builder, "menubar")); gtk_application_set_menubar (GTK_APPLICATION (app), menubar); g_object_unref (builder); // ... GtkWidget *window = gtk_application_window_new (app); ]| ## Handling fallback yourself [A simple example](https://git.gnome.org/browse/gtk+/tree/examples/sunny.c) The XML format understood by #GtkBuilder for #GMenuModel consists of a toplevel `<menu>` element, which contains one or more `<item>` elements. Each `<item>` element contains `<attribute>` and `<link>` elements with a mandatory name attribute. `<link>` elements have the same content model as `<menu>`. Instead of `<link name="submenu>` or `<link name="section">`, you can use `<submenu>` or `<section>` elements. Attribute values can be translated using gettext, like other #GtkBuilder content. `<attribute>` elements can be marked for translation with a `translatable="yes"` attribute. It is also possible to specify message context and translator comments, using the context and comments attributes. To make use of this, the #GtkBuilder must have been given the gettext domain to use. The following attributes are used when constructing menu items: - "label": a user-visible string to display - "action": the prefixed name of the action to trigger - "target": the parameter to use when activating the action - "icon" and "verb-icon": names of icons that may be displayed - "submenu-action": name of an action that may be used to determine if a submenu can be opened - "hidden-when": a string used to determine when the item will be hidden. Possible values include "action-disabled", "action-missing", "macos-menubar". The following attributes are used when constructing sections: - "label": a user-visible string to use as section heading - "display-hint": a string used to determine special formatting for the section. Possible values include "horizontal-buttons". - "text-direction": a string used to determine the #GtkTextDirection to use when "display-hint" is set to "horizontal-buttons". Possible values include "rtl", "ltr", and "none". The following attributes are used when constructing submenus: - "label": a user-visible string to display - "icon": icon name to display</doc> <implements name="Atk.ImplementorIface"/> <implements name="Gio.ActionGroup"/> <implements name="Gio.ActionMap"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_application_window_new" version="3.4"> <doc xml:space="preserve">Creates a new #GtkApplicationWindow.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkApplicationWindow</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </parameter> </parameters> </constructor> <method name="get_help_overlay" c:identifier="gtk_application_window_get_help_overlay" version="3.20"> <doc xml:space="preserve">Gets the #GtkShortcutsWindow that has been set up with a prior call to gtk_application_window_set_help_overlay().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the help overlay associated with @window, or %NULL</doc> <type name="ShortcutsWindow" c:type="GtkShortcutsWindow*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplicationWindow</doc> <type name="ApplicationWindow" c:type="GtkApplicationWindow*"/> </instance-parameter> </parameters> </method> <method name="get_id" c:identifier="gtk_application_window_get_id" version="3.6"> <doc xml:space="preserve">Returns the unique ID of the window. If the window has not yet been added to a #GtkApplication, returns `0`.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the unique ID for @window, or `0` if the window has not yet been added to a #GtkApplication</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplicationWindow</doc> <type name="ApplicationWindow" c:type="GtkApplicationWindow*"/> </instance-parameter> </parameters> </method> <method name="get_show_menubar" c:identifier="gtk_application_window_get_show_menubar" version="3.4"> <doc xml:space="preserve">Returns whether the window will display a menubar for the app menu and menubar as needed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @window will display a menubar when needed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplicationWindow</doc> <type name="ApplicationWindow" c:type="GtkApplicationWindow*"/> </instance-parameter> </parameters> </method> <method name="set_help_overlay" c:identifier="gtk_application_window_set_help_overlay" version="3.20"> <doc xml:space="preserve">Associates a shortcuts window with the application window, and sets up an action with the name win.show-help-overlay to present it. @window takes resposibility for destroying @help_overlay.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplicationWindow</doc> <type name="ApplicationWindow" c:type="GtkApplicationWindow*"/> </instance-parameter> <parameter name="help_overlay" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkShortcutsWindow</doc> <type name="ShortcutsWindow" c:type="GtkShortcutsWindow*"/> </parameter> </parameters> </method> <method name="set_show_menubar" c:identifier="gtk_application_window_set_show_menubar" version="3.4"> <doc xml:space="preserve">Sets whether the window will display a menubar for the app menu and menubar as needed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplicationWindow</doc> <type name="ApplicationWindow" c:type="GtkApplicationWindow*"/> </instance-parameter> <parameter name="show_menubar" transfer-ownership="none"> <doc xml:space="preserve">whether to show a menubar when needed</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="show-menubar" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">If this property is %TRUE, the window will display a menubar that includes the app menu and menubar, unless these are shown by the desktop shell. See gtk_application_set_app_menu() and gtk_application_set_menubar(). If %FALSE, the window will not display a menubar, regardless of whether the desktop shell is showing the menus or not.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Window" c:type="GtkWindow"/> </field> <field name="priv" readable="0" private="1"> <type name="ApplicationWindowPrivate" c:type="GtkApplicationWindowPrivate*"/> </field> </class> <record name="ApplicationWindowClass" c:type="GtkApplicationWindowClass" glib:is-gtype-struct-for="ApplicationWindow"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="WindowClass" c:type="GtkWindowClass"/> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="14"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <record name="ApplicationWindowPrivate" c:type="GtkApplicationWindowPrivate" disguised="1"> </record> <class name="Arrow" c:symbol-prefix="arrow" c:type="GtkArrow" parent="Misc" glib:type-name="GtkArrow" glib:get-type="gtk_arrow_get_type" glib:type-struct="ArrowClass"> <doc xml:space="preserve">GtkArrow should be used to draw simple arrows that need to point in one of the four cardinal directions (up, down, left, or right). The style of the arrow can be one of shadow in, shadow out, etched in, or etched out. Note that these directions and style types may be amended in versions of GTK+ to come. GtkArrow will fill any space alloted to it, but since it is inherited from #GtkMisc, it can be padded and/or aligned, to fill exactly the space the programmer desires. Arrows are created with a call to gtk_arrow_new(). The direction or style of an arrow can be changed after creation by using gtk_arrow_set(). GtkArrow has been deprecated; you can simply use a #GtkImage with a suitable icon name, such as âpan-down-symbolicâ. When replacing GtkArrow by an image, pay attention to the fact that GtkArrow is doing automatic flipping between #GTK_ARROW_LEFT and #GTK_ARROW_RIGHT, depending on the text direction. To get the same effect with an image, use the icon names âpan-start-symbolicâ and âpan-end-symbolicâ, which react to the text direction.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_arrow_new" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a new #GtkArrow widget.</doc> <doc-deprecated xml:space="preserve">Use a #GtkImage with a suitable icon.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkArrow widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="arrow_type" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkArrowType.</doc> <type name="ArrowType" c:type="GtkArrowType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkShadowType.</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> </parameters> </constructor> <method name="set" c:identifier="gtk_arrow_set" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the direction and style of the #GtkArrow, @arrow.</doc> <doc-deprecated xml:space="preserve">Use a #GtkImage with a suitable icon.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="arrow" transfer-ownership="none"> <doc xml:space="preserve">a widget of type #GtkArrow.</doc> <type name="Arrow" c:type="GtkArrow*"/> </instance-parameter> <parameter name="arrow_type" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkArrowType.</doc> <type name="ArrowType" c:type="GtkArrowType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkShadowType.</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> </parameters> </method> <property name="arrow-type" writable="1" transfer-ownership="none"> <type name="ArrowType"/> </property> <property name="shadow-type" writable="1" transfer-ownership="none"> <type name="ShadowType"/> </property> <field name="misc"> <type name="Misc" c:type="GtkMisc"/> </field> <field name="priv" readable="0" private="1"> <type name="ArrowPrivate" c:type="GtkArrowPrivate*"/> </field> </class> <class name="ArrowAccessible" c:symbol-prefix="arrow_accessible" c:type="GtkArrowAccessible" parent="WidgetAccessible" glib:type-name="GtkArrowAccessible" glib:get-type="gtk_arrow_accessible_get_type" glib:type-struct="ArrowAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="ArrowAccessiblePrivate" c:type="GtkArrowAccessiblePrivate*"/> </field> </class> <record name="ArrowAccessibleClass" c:type="GtkArrowAccessibleClass" glib:is-gtype-struct-for="ArrowAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="ArrowAccessiblePrivate" c:type="GtkArrowAccessiblePrivate" disguised="1"> </record> <record name="ArrowClass" c:type="GtkArrowClass" glib:is-gtype-struct-for="Arrow"> <field name="parent_class"> <type name="MiscClass" c:type="GtkMiscClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="ArrowPlacement" glib:type-name="GtkArrowPlacement" glib:get-type="gtk_arrow_placement_get_type" c:type="GtkArrowPlacement"> <doc xml:space="preserve">Used to specify the placement of scroll arrows in scrolling menus.</doc> <member name="both" value="0" c:identifier="GTK_ARROWS_BOTH" glib:nick="both"> <doc xml:space="preserve">Place one arrow on each end of the menu.</doc> </member> <member name="start" value="1" c:identifier="GTK_ARROWS_START" glib:nick="start"> <doc xml:space="preserve">Place both arrows at the top of the menu.</doc> </member> <member name="end" value="2" c:identifier="GTK_ARROWS_END" glib:nick="end"> <doc xml:space="preserve">Place both arrows at the bottom of the menu.</doc> </member> </enumeration> <record name="ArrowPrivate" c:type="GtkArrowPrivate" disguised="1"> </record> <enumeration name="ArrowType" glib:type-name="GtkArrowType" glib:get-type="gtk_arrow_type_get_type" c:type="GtkArrowType"> <doc xml:space="preserve">Used to indicate the direction in which an arrow should point.</doc> <member name="up" value="0" c:identifier="GTK_ARROW_UP" glib:nick="up"> <doc xml:space="preserve">Represents an upward pointing arrow.</doc> </member> <member name="down" value="1" c:identifier="GTK_ARROW_DOWN" glib:nick="down"> <doc xml:space="preserve">Represents a downward pointing arrow.</doc> </member> <member name="left" value="2" c:identifier="GTK_ARROW_LEFT" glib:nick="left"> <doc xml:space="preserve">Represents a left pointing arrow.</doc> </member> <member name="right" value="3" c:identifier="GTK_ARROW_RIGHT" glib:nick="right"> <doc xml:space="preserve">Represents a right pointing arrow.</doc> </member> <member name="none" value="4" c:identifier="GTK_ARROW_NONE" glib:nick="none"> <doc xml:space="preserve">No arrow. Since 2.10.</doc> </member> </enumeration> <class name="AspectFrame" c:symbol-prefix="aspect_frame" c:type="GtkAspectFrame" parent="Frame" glib:type-name="GtkAspectFrame" glib:get-type="gtk_aspect_frame_get_type" glib:type-struct="AspectFrameClass"> <doc xml:space="preserve">The #GtkAspectFrame is useful when you want pack a widget so that it can resize but always retains the same aspect ratio. For instance, one might be drawing a small preview of a larger image. #GtkAspectFrame derives from #GtkFrame, so it can draw a label and a frame around the child. The frame will be âshrink-wrappedâ to the size of the child. # CSS nodes GtkAspectFrame uses a CSS node with name frame.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_aspect_frame_new"> <doc xml:space="preserve">Create a new #GtkAspectFrame.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkAspectFrame.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Label text.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">Horizontal alignment of the child within the allocation of the #GtkAspectFrame. This ranges from 0.0 (left aligned) to 1.0 (right aligned)</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">Vertical alignment of the child within the allocation of the #GtkAspectFrame. This ranges from 0.0 (top aligned) to 1.0 (bottom aligned)</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="ratio" transfer-ownership="none"> <doc xml:space="preserve">The desired aspect ratio.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="obey_child" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, @ratio is ignored, and the aspect ratio is taken from the requistion of the child.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </constructor> <method name="set" c:identifier="gtk_aspect_frame_set"> <doc xml:space="preserve">Set parameters for an existing #GtkAspectFrame.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="aspect_frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAspectFrame</doc> <type name="AspectFrame" c:type="GtkAspectFrame*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">Horizontal alignment of the child within the allocation of the #GtkAspectFrame. This ranges from 0.0 (left aligned) to 1.0 (right aligned)</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">Vertical alignment of the child within the allocation of the #GtkAspectFrame. This ranges from 0.0 (top aligned) to 1.0 (bottom aligned)</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="ratio" transfer-ownership="none"> <doc xml:space="preserve">The desired aspect ratio.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="obey_child" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, @ratio is ignored, and the aspect ratio is taken from the requistion of the child.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="obey-child" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="ratio" writable="1" transfer-ownership="none"> <type name="gfloat" c:type="gfloat"/> </property> <property name="xalign" writable="1" transfer-ownership="none"> <type name="gfloat" c:type="gfloat"/> </property> <property name="yalign" writable="1" transfer-ownership="none"> <type name="gfloat" c:type="gfloat"/> </property> <field name="frame"> <type name="Frame" c:type="GtkFrame"/> </field> <field name="priv" readable="0" private="1"> <type name="AspectFramePrivate" c:type="GtkAspectFramePrivate*"/> </field> </class> <record name="AspectFrameClass" c:type="GtkAspectFrameClass" glib:is-gtype-struct-for="AspectFrame"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="FrameClass" c:type="GtkFrameClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="AspectFramePrivate" c:type="GtkAspectFramePrivate" disguised="1"> </record> <class name="Assistant" c:symbol-prefix="assistant" c:type="GtkAssistant" parent="Window" glib:type-name="GtkAssistant" glib:get-type="gtk_assistant_get_type" glib:type-struct="AssistantClass"> <doc xml:space="preserve">A #GtkAssistant is a widget used to represent a generally complex operation splitted in several steps, guiding the user through its pages and controlling the page flow to collect the necessary data. The design of GtkAssistant is that it controls what buttons to show and to make sensitive, based on what it knows about the page sequence and the [type][GtkAssistantPageType] of each page, in addition to state information like the page [completion][gtk-assistant-set-page-complete] and [committed][gtk-assistant-commit] status. If you have a case that doesnât quite fit in #GtkAssistants way of handling buttons, you can use the #GTK_ASSISTANT_PAGE_CUSTOM page type and handle buttons yourself. # GtkAssistant as GtkBuildable The GtkAssistant implementation of the #GtkBuildable interface exposes the @action_area as internal children with the name âaction_areaâ. To add pages to an assistant in #GtkBuilder, simply add it as a child to the GtkAssistant object, and set its child properties as necessary. # CSS nodes GtkAssistant has a single CSS node with the name assistant.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_assistant_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkAssistant.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkAssistant</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="apply"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="cancel"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="close"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="prepare"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <method name="add_action_widget" c:identifier="gtk_assistant_add_action_widget" version="2.10"> <doc xml:space="preserve">Adds a widget to the action area of a #GtkAssistant.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="append_page" c:identifier="gtk_assistant_append_page" version="2.10"> <doc xml:space="preserve">Appends a page to the @assistant.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting at 0) of the inserted page</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="commit" c:identifier="gtk_assistant_commit" version="2.22"> <doc xml:space="preserve">Erases the visited page history so the back button is not shown 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </method> <method name="get_current_page" c:identifier="gtk_assistant_get_current_page" version="2.10"> <doc xml:space="preserve">Returns the page number of the current page.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The index (starting from 0) of the current page in the @assistant, or -1 if the @assistant has no pages, or no current page.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </method> <method name="get_n_pages" c:identifier="gtk_assistant_get_n_pages" version="2.10"> <doc xml:space="preserve">Returns the number of pages in the @assistant</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of pages in the @assistant</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </method> <method name="get_nth_page" c:identifier="gtk_assistant_get_nth_page" version="2.10"> <doc xml:space="preserve">Returns the child widget contained in page number @page_num.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the child widget, or %NULL if @page_num is out of bounds</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">the index of a page in the @assistant, or -1 to get the last page</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_page_complete" c:identifier="gtk_assistant_get_page_complete" version="2.10"> <doc xml:space="preserve">Gets whether @page is complete.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @page is complete.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_page_has_padding" c:identifier="gtk_assistant_get_page_has_padding" version="3.18"> <doc xml:space="preserve">Gets whether page has padding.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @page has padding</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_page_header_image" c:identifier="gtk_assistant_get_page_header_image" version="2.10" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the header image for @page.</doc> <doc-deprecated xml:space="preserve">Since GTK+ 3.2, a header is no longer shown; add your header decoration to the page content instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the header image for @page, or %NULL if thereâs no header image for the page</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_page_side_image" c:identifier="gtk_assistant_get_page_side_image" version="2.10" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the side image for @page.</doc> <doc-deprecated xml:space="preserve">Since GTK+ 3.2, sidebar images are not shown anymore.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the side image for @page, or %NULL if thereâs no side image for the page</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_page_title" c:identifier="gtk_assistant_get_page_title" version="2.10"> <doc xml:space="preserve">Gets the title for @page.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the title for @page</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_page_type" c:identifier="gtk_assistant_get_page_type" version="2.10"> <doc xml:space="preserve">Gets the page type of @page.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the page type of @page</doc> <type name="AssistantPageType" c:type="GtkAssistantPageType"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="insert_page" c:identifier="gtk_assistant_insert_page" version="2.10"> <doc xml:space="preserve">Inserts a page in the @assistant at a given position.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting from 0) of the inserted page</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the index (starting at 0) at which to insert the page, or -1 to append the page to the @assistant</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="next_page" c:identifier="gtk_assistant_next_page" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </method> <method name="prepend_page" c:identifier="gtk_assistant_prepend_page" version="2.10"> <doc xml:space="preserve">Prepends a page to the @assistant.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting at 0) of the inserted page</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="previous_page" c:identifier="gtk_assistant_previous_page" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </method> <method name="remove_action_widget" c:identifier="gtk_assistant_remove_action_widget" version="2.10"> <doc xml:space="preserve">Removes a widget from the action area of a #GtkAssistant.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="remove_page" c:identifier="gtk_assistant_remove_page" version="3.2"> <doc xml:space="preserve">Removes the @page_numâs page from @assistant.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">the index of a page in the @assistant, or -1 to remove the last page</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_current_page" c:identifier="gtk_assistant_set_current_page" version="2.10"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_forward_page_func" c:identifier="gtk_assistant_set_forward_page_func" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">the #GtkAssistantPageFunc, or %NULL to use the default one</doc> <type name="AssistantPageFunc" c:type="GtkAssistantPageFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data for @page_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notifier for @data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_page_complete" c:identifier="gtk_assistant_set_page_complete" version="2.10"> <doc xml:space="preserve">Sets whether @page contents are complete. This will make @assistant update the buttons state to be able to continue the task.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="complete" transfer-ownership="none"> <doc xml:space="preserve">the completeness status of the page</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_page_has_padding" c:identifier="gtk_assistant_set_page_has_padding" version="3.18"> <doc xml:space="preserve">Sets whether the assistant is adding padding around the page.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="has_padding" transfer-ownership="none"> <doc xml:space="preserve">whether this page has padding</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_page_header_image" c:identifier="gtk_assistant_set_page_header_image" version="2.10" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Sets a header image for @page.</doc> <doc-deprecated xml:space="preserve">Since GTK+ 3.2, a header is no longer shown; add your header decoration to the page content instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the new header image @page</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_page_side_image" c:identifier="gtk_assistant_set_page_side_image" version="2.10" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Sets a side image for @page. This image used to be displayed in the side area of the assistant when @page is the current page.</doc> <doc-deprecated xml:space="preserve">Since GTK+ 3.2, sidebar images are not shown anymore.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the new side image @page</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_page_title" c:identifier="gtk_assistant_set_page_title" version="2.10"> <doc xml:space="preserve">Sets a title for @page. The title is displayed in the header area of the assistant when @page is the current page.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">the new title for @page</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_page_type" c:identifier="gtk_assistant_set_page_type" version="2.10"> <doc xml:space="preserve">Sets the page type for @page. The page type determines the page behavior in the @assistant.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">a page of @assistant</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the new type for @page</doc> <type name="AssistantPageType" c:type="GtkAssistantPageType"/> </parameter> </parameters> </method> <method name="update_buttons_state" c:identifier="gtk_assistant_update_buttons_state" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="assistant" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAssistant</doc> <type name="Assistant" c:type="GtkAssistant*"/> </instance-parameter> </parameters> </method> <property name="use-header-bar" version="3.12" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">%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.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent"> <type name="Window" c:type="GtkWindow"/> </field> <field name="priv" readable="0" private="1"> <type name="AssistantPrivate" c:type="GtkAssistantPrivate*"/> </field> <glib:signal name="apply" when="last" version="2.10"> <doc xml:space="preserve">The ::apply signal is 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 #GtkAssistant::prepare signal of the progress page.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="cancel" when="last" version="2.10"> <doc xml:space="preserve">The ::cancel signal is emitted when then the cancel button is clicked.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="close" when="last" version="2.10"> <doc xml:space="preserve">The ::close signal is 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="escape" when="first" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="prepare" when="last" version="2.10"> <doc xml:space="preserve">The ::prepare signal is 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">the current page</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> </class> <record name="AssistantClass" c:type="GtkAssistantClass" glib:is-gtype-struct-for="Assistant"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="WindowClass" c:type="GtkWindowClass"/> </field> <field name="prepare"> <callback name="prepare"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="assistant" transfer-ownership="none"> <type name="Assistant" c:type="GtkAssistant*"/> </parameter> <parameter name="page" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="apply"> <callback name="apply"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="assistant" transfer-ownership="none"> <type name="Assistant" c:type="GtkAssistant*"/> </parameter> </parameters> </callback> </field> <field name="close"> <callback name="close"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="assistant" transfer-ownership="none"> <type name="Assistant" c:type="GtkAssistant*"/> </parameter> </parameters> </callback> </field> <field name="cancel"> <callback name="cancel"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="assistant" transfer-ownership="none"> <type name="Assistant" c:type="GtkAssistant*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="AssistantPageFunc" c:type="GtkAssistantPageFunc"> <doc xml:space="preserve">A function used by gtk_assistant_set_forward_page_func() to know which is the next page given a current one. Itâs called both for computing the next page when the user presses the âforwardâ button and for handling the behavior of the âlastâ button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The next page number.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="current_page" transfer-ownership="none"> <doc xml:space="preserve">The page number used to calculate the next page.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <enumeration name="AssistantPageType" glib:type-name="GtkAssistantPageType" glib:get-type="gtk_assistant_page_type_get_type" c:type="GtkAssistantPageType"> <doc xml:space="preserve">An enum for determining the page role inside the #GtkAssistant. It's 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.</doc> <member name="content" value="0" c:identifier="GTK_ASSISTANT_PAGE_CONTENT" glib:nick="content"> <doc xml:space="preserve">The page has regular contents. Both the Back and forward buttons will be shown.</doc> </member> <member name="intro" value="1" c:identifier="GTK_ASSISTANT_PAGE_INTRO" glib:nick="intro"> <doc xml:space="preserve">The page contains an introduction to the assistant task. Only the Forward button will be shown if there is a next page.</doc> </member> <member name="confirm" value="2" c:identifier="GTK_ASSISTANT_PAGE_CONFIRM" glib:nick="confirm"> <doc xml:space="preserve">The page lets the user confirm or deny the changes. The Back and Apply buttons will be shown.</doc> </member> <member name="summary" value="3" c:identifier="GTK_ASSISTANT_PAGE_SUMMARY" glib:nick="summary"> <doc xml:space="preserve">The page informs the user of the changes done. Only the Close button will be shown.</doc> </member> <member name="progress" value="4" c:identifier="GTK_ASSISTANT_PAGE_PROGRESS" glib:nick="progress"> <doc xml:space="preserve">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.</doc> </member> <member name="custom" value="5" c:identifier="GTK_ASSISTANT_PAGE_CUSTOM" glib:nick="custom"> <doc xml:space="preserve">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().</doc> </member> </enumeration> <record name="AssistantPrivate" c:type="GtkAssistantPrivate" disguised="1"> </record> <bitfield name="AttachOptions" glib:type-name="GtkAttachOptions" glib:get-type="gtk_attach_options_get_type" c:type="GtkAttachOptions"> <doc xml:space="preserve">Denotes the expansion properties that a widget will have when it (or its parent) is resized.</doc> <member name="expand" value="1" c:identifier="GTK_EXPAND" glib:nick="expand"> <doc xml:space="preserve">the widget should expand to take up any extra space in its container that has been allocated.</doc> </member> <member name="shrink" value="2" c:identifier="GTK_SHRINK" glib:nick="shrink"> <doc xml:space="preserve">the widget should shrink as and when possible.</doc> </member> <member name="fill" value="4" c:identifier="GTK_FILL" glib:nick="fill"> <doc xml:space="preserve">the widget should fill the space allocated to it.</doc> </member> </bitfield> <constant name="BINARY_AGE" value="2230" c:type="GTK_BINARY_AGE"> <doc xml:space="preserve">Like gtk_get_binary_age(), but from the headers used at application compile time, rather than from the library linked against at application run time.</doc> <type name="gint" c:type="gint"/> </constant> <enumeration name="BaselinePosition" version="3.10" glib:type-name="GtkBaselinePosition" glib:get-type="gtk_baseline_position_get_type" c:type="GtkBaselinePosition"> <doc xml:space="preserve">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 verical 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 availible space.</doc> <member name="top" value="0" c:identifier="GTK_BASELINE_POSITION_TOP" glib:nick="top"> <doc xml:space="preserve">Align the baseline at the top</doc> </member> <member name="center" value="1" c:identifier="GTK_BASELINE_POSITION_CENTER" glib:nick="center"> <doc xml:space="preserve">Center the baseline</doc> </member> <member name="bottom" value="2" c:identifier="GTK_BASELINE_POSITION_BOTTOM" glib:nick="bottom"> <doc xml:space="preserve">Align the baseline at the bottom</doc> </member> </enumeration> <class name="Bin" c:symbol-prefix="bin" c:type="GtkBin" parent="Container" abstract="1" glib:type-name="GtkBin" glib:get-type="gtk_bin_get_type" glib:type-struct="BinClass"> <doc xml:space="preserve">The #GtkBin widget is a container with just one child. It is not very useful itself, but it is useful for deriving subclasses, since it provides common code needed for handling a single child widget. Many GTK+ widgets are subclasses of #GtkBin, including #GtkWindow, #GtkButton, #GtkFrame, #GtkHandleBox or #GtkScrolledWindow.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <method name="get_child" c:identifier="gtk_bin_get_child"> <doc xml:space="preserve">Gets the child of the #GtkBin, or %NULL if the bin contains no child widget. The returned widget does not have a reference added, so you do not need to unref it.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the child of @bin, or %NULL if it does not have a child.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="bin" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBin</doc> <type name="Bin" c:type="GtkBin*"/> </instance-parameter> </parameters> </method> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="BinPrivate" c:type="GtkBinPrivate*"/> </field> </class> <record name="BinClass" c:type="GtkBinClass" glib:is-gtype-struct-for="Bin"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="BinPrivate" c:type="GtkBinPrivate" disguised="1"> </record> <record name="BindingArg" c:type="GtkBindingArg"> <doc xml:space="preserve">A #GtkBindingArg holds the data associated with an argument for a key binding signal emission as stored in #GtkBindingSignal.</doc> <field name="arg_type" writable="1"> <doc xml:space="preserve">implementation detail</doc> <type name="GType" c:type="GType"/> </field> <union name="d" c:type="d"> <field name="long_data" writable="1"> <type name="glong" c:type="glong"/> </field> <field name="double_data" writable="1"> <type name="gdouble" c:type="gdouble"/> </field> <field name="string_data" writable="1"> <type name="utf8" c:type="gchar*"/> </field> </union> </record> <record name="BindingEntry" c:type="GtkBindingEntry"> <doc xml:space="preserve">Each key binding element of a binding sets binding list is represented by a GtkBindingEntry.</doc> <field name="keyval" writable="1"> <doc xml:space="preserve">key value to match</doc> <type name="guint" c:type="guint"/> </field> <field name="modifiers" writable="1"> <doc xml:space="preserve">key modifiers to match</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </field> <field name="binding_set" writable="1"> <doc xml:space="preserve">binding set this entry belongs to</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </field> <field name="destroyed" writable="1" bits="1"> <doc xml:space="preserve">implementation detail</doc> <type name="guint" c:type="guint"/> </field> <field name="in_emission" writable="1" bits="1"> <doc xml:space="preserve">implementation detail</doc> <type name="guint" c:type="guint"/> </field> <field name="marks_unbound" writable="1" bits="1"> <doc xml:space="preserve">implementation detail</doc> <type name="guint" c:type="guint"/> </field> <field name="set_next" writable="1"> <doc xml:space="preserve">linked list of entries maintained by binding set</doc> <type name="BindingEntry" c:type="GtkBindingEntry*"/> </field> <field name="hash_next" writable="1"> <doc xml:space="preserve">implementation detail</doc> <type name="BindingEntry" c:type="GtkBindingEntry*"/> </field> <field name="signals" writable="1"> <doc xml:space="preserve">action signals of this entry</doc> <type name="BindingSignal" c:type="GtkBindingSignal*"/> </field> <function name="add_signal" c:identifier="gtk_binding_entry_add_signal" introspectable="0"> <doc xml:space="preserve">Override or install a new key binding for @keyval with @modifiers on @binding_set. When the binding is activated, @signal_name will be emitted on the target widget, with @n_args @Varargs used as arguments. Each argument to the signal must be passed as a pair of varargs: the #GType of the argument, followed by the argument value (which must be of the given type). There must be @n_args pairs in total. ## Adding a Key Binding |[<!-- language="C" --> GtkBindingSet *binding_set; GdkModifierType modmask = GDK_CONTROL_MASK; int count = 1; gtk_binding_entry_add_signal (binding_set, GDK_KEY_space, modmask, "move-cursor", 2, GTK_TYPE_MOVEMENT_STEP, GTK_MOVEMENT_PAGES, G_TYPE_INT, count, G_TYPE_BOOLEAN, FALSE); ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet to install an entry for</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value of binding to install</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier of binding to install</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="signal_name" transfer-ownership="none"> <doc xml:space="preserve">signal to execute upon activation</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_args" transfer-ownership="none"> <doc xml:space="preserve">number of arguments to @signal_name</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">arguments to @signal_name</doc> <varargs/> </parameter> </parameters> </function> <function name="add_signal_from_string" c:identifier="gtk_binding_entry_add_signal_from_string" version="3.0"> <doc xml:space="preserve">Parses a signal description from @signal_desc and incorporates it into @binding_set. Signal descriptions may either bind a key combination to one or more signals: |[ bind "key" { "signalname" (param, ...) ... } ]| Or they may also unbind a key combination: |[ unbind "key" ]| Key combinations must be in a format that can be parsed by gtk_accelerator_parse().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%G_TOKEN_NONE if the signal was successfully parsed and added, the expected token otherwise</doc> <type name="GLib.TokenType" c:type="GTokenType"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="signal_desc" transfer-ownership="none"> <doc xml:space="preserve">a signal description</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="add_signall" c:identifier="gtk_binding_entry_add_signall"> <doc xml:space="preserve">Override or install a new key binding for @keyval with @modifiers on @binding_set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet to add a signal to</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="signal_name" transfer-ownership="none"> <doc xml:space="preserve">signal name to be bound</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="binding_args" transfer-ownership="none"> <doc xml:space="preserve"> list of #GtkBindingArg signal arguments</doc> <type name="GLib.SList" c:type="GSList*"> <type name="BindingArg"/> </type> </parameter> </parameters> </function> <function name="remove" c:identifier="gtk_binding_entry_remove"> <doc xml:space="preserve">Remove a binding previously installed via gtk_binding_entry_add_signal() on @binding_set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet to remove an entry of</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value of binding to remove</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier of binding to remove</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="skip" c:identifier="gtk_binding_entry_skip" version="2.12"> <doc xml:space="preserve">Install a binding on @binding_set which causes key lookups to be aborted, to prevent bindings from lower priority sets to be activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet to skip an entry of</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value of binding to skip</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier of binding to skip</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> </record> <record name="BindingSet" c:type="GtkBindingSet"> <doc xml:space="preserve">A binding set maintains a list of activatable key bindings. A single binding set can match multiple types of widgets. Similar to style contexts, can be matched by any information contained in a widgets #GtkWidgetPath. When a binding within a set is matched upon activation, an action signal is emitted on the target widget to carry out the actual activation.</doc> <field name="set_name" writable="1"> <doc xml:space="preserve">unique name of this binding set</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="priority" writable="1"> <doc xml:space="preserve">unused</doc> <type name="gint" c:type="gint"/> </field> <field name="widget_path_pspecs" writable="1"> <doc xml:space="preserve">unused</doc> <type name="GLib.SList" c:type="GSList*"> <type name="gpointer" c:type="gpointer"/> </type> </field> <field name="widget_class_pspecs" writable="1"> <doc xml:space="preserve">unused</doc> <type name="GLib.SList" c:type="GSList*"> <type name="gpointer" c:type="gpointer"/> </type> </field> <field name="class_branch_pspecs" writable="1"> <doc xml:space="preserve">unused</doc> <type name="GLib.SList" c:type="GSList*"> <type name="gpointer" c:type="gpointer"/> </type> </field> <field name="entries" writable="1"> <doc xml:space="preserve">the key binding entries in this binding set</doc> <type name="BindingEntry" c:type="GtkBindingEntry*"/> </field> <field name="current" writable="1"> <doc xml:space="preserve">implementation detail</doc> <type name="BindingEntry" c:type="GtkBindingEntry*"/> </field> <field name="parsed" writable="1" bits="1"> <doc xml:space="preserve">whether this binding set stems from a CSS file and is reset upon theme changes</doc> <type name="guint" c:type="guint"/> </field> <method name="activate" c:identifier="gtk_binding_set_activate"> <doc xml:space="preserve">Find a key binding matching @keyval and @modifiers within @binding_set and activate the binding on @object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a binding was found and activated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet set to activate</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </instance-parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value of the binding</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier of the binding</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="object" transfer-ownership="none"> <doc xml:space="preserve">object to activate when binding found</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> </parameters> </method> <method name="add_path" c:identifier="gtk_binding_set_add_path" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">This function was used internally by the GtkRC parsing mechanism to assign match patterns to #GtkBindingSet structures. In GTK+ 3, these match patterns are unused.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet to add a path to</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </instance-parameter> <parameter name="path_type" transfer-ownership="none"> <doc xml:space="preserve">path type the pattern applies to</doc> <type name="PathType" c:type="GtkPathType"/> </parameter> <parameter name="path_pattern" transfer-ownership="none"> <doc xml:space="preserve">the actual match pattern</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="priority" transfer-ownership="none"> <doc xml:space="preserve">binding priority</doc> <type name="PathPriorityType" c:type="GtkPathPriorityType"/> </parameter> </parameters> </method> <function name="by_class" c:identifier="gtk_binding_set_by_class" introspectable="0"> <doc xml:space="preserve">This function returns the binding set named after the type name of the passed in class structure. New binding sets are created on demand by this function.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the binding set corresponding to @object_class</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </return-value> <parameters> <parameter name="object_class" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a valid #GObject class</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </function> <function name="find" c:identifier="gtk_binding_set_find"> <doc xml:space="preserve">Find a binding set by its globally unique name. The @set_name can either be a name used for gtk_binding_set_new() or the type name of a class used in gtk_binding_set_by_class().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">%NULL or the specified binding set</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </return-value> <parameters> <parameter name="set_name" transfer-ownership="none"> <doc xml:space="preserve">unique binding set name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="new" c:identifier="gtk_binding_set_new" introspectable="0"> <doc xml:space="preserve">GTK+ maintains a global list of binding sets. Each binding set has a unique name which needs to be specified upon creation.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">new binding set</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </return-value> <parameters> <parameter name="set_name" transfer-ownership="none"> <doc xml:space="preserve">unique name of this binding set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> </record> <record name="BindingSignal" c:type="GtkBindingSignal"> <doc xml:space="preserve">A GtkBindingSignal stores the necessary information to activate a widget in response to a key press via a signal emission.</doc> <field name="next" writable="1"> <doc xml:space="preserve">implementation detail</doc> <type name="BindingSignal" c:type="GtkBindingSignal*"/> </field> <field name="signal_name" writable="1"> <doc xml:space="preserve">the action signal to be emitted</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="n_args" writable="1"> <doc xml:space="preserve">number of arguments specified for the signal</doc> <type name="guint" c:type="guint"/> </field> <field name="args" writable="1"> <doc xml:space="preserve">the arguments specified for the signal</doc> <array length="2" zero-terminated="0" c:type="GtkBindingArg*"> <type name="BindingArg" c:type="GtkBindingArg"/> </array> </field> </record> <class name="BooleanCellAccessible" c:symbol-prefix="boolean_cell_accessible" c:type="GtkBooleanCellAccessible" parent="RendererCellAccessible" glib:type-name="GtkBooleanCellAccessible" glib:get-type="gtk_boolean_cell_accessible_get_type" glib:type-struct="BooleanCellAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <field name="parent"> <type name="RendererCellAccessible" c:type="GtkRendererCellAccessible"/> </field> <field name="priv"> <type name="BooleanCellAccessiblePrivate" c:type="GtkBooleanCellAccessiblePrivate*"/> </field> </class> <record name="BooleanCellAccessibleClass" c:type="GtkBooleanCellAccessibleClass" glib:is-gtype-struct-for="BooleanCellAccessible"> <field name="parent_class"> <type name="RendererCellAccessibleClass" c:type="GtkRendererCellAccessibleClass"/> </field> </record> <record name="BooleanCellAccessiblePrivate" c:type="GtkBooleanCellAccessiblePrivate" disguised="1"> </record> <record name="Border" c:type="GtkBorder" glib:type-name="GtkBorder" glib:get-type="gtk_border_get_type" c:symbol-prefix="border"> <doc xml:space="preserve">A struct that specifies a border around a rectangular area that can be of different width on each side.</doc> <field name="left" writable="1"> <doc xml:space="preserve">The width of the left border</doc> <type name="gint16" c:type="gint16"/> </field> <field name="right" writable="1"> <doc xml:space="preserve">The width of the right border</doc> <type name="gint16" c:type="gint16"/> </field> <field name="top" writable="1"> <doc xml:space="preserve">The width of the top border</doc> <type name="gint16" c:type="gint16"/> </field> <field name="bottom" writable="1"> <doc xml:space="preserve">The width of the bottom border</doc> <type name="gint16" c:type="gint16"/> </field> <constructor name="new" c:identifier="gtk_border_new" version="2.14"> <doc xml:space="preserve">Allocates a new #GtkBorder-struct and initializes its elements to zero.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated #GtkBorder-struct. Free with gtk_border_free()</doc> <type name="Border" c:type="GtkBorder*"/> </return-value> </constructor> <method name="copy" c:identifier="gtk_border_copy"> <doc xml:space="preserve">Copies a #GtkBorder-struct.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of @border_.</doc> <type name="Border" c:type="GtkBorder*"/> </return-value> <parameters> <instance-parameter name="border_" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBorder-struct</doc> <type name="Border" c:type="const GtkBorder*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_border_free"> <doc xml:space="preserve">Frees a #GtkBorder-struct.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="border_" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBorder-struct</doc> <type name="Border" c:type="GtkBorder*"/> </instance-parameter> </parameters> </method> </record> <enumeration name="BorderStyle" glib:type-name="GtkBorderStyle" glib:get-type="gtk_border_style_get_type" c:type="GtkBorderStyle"> <doc xml:space="preserve">Describes how the border of a UI element should be rendered.</doc> <member name="none" value="0" c:identifier="GTK_BORDER_STYLE_NONE" glib:nick="none"> <doc xml:space="preserve">No visible border</doc> </member> <member name="solid" value="1" c:identifier="GTK_BORDER_STYLE_SOLID" glib:nick="solid"> <doc xml:space="preserve">A single line segment</doc> </member> <member name="inset" value="2" c:identifier="GTK_BORDER_STYLE_INSET" glib:nick="inset"> <doc xml:space="preserve">Looks as if the content is sunken into the canvas</doc> </member> <member name="outset" value="3" c:identifier="GTK_BORDER_STYLE_OUTSET" glib:nick="outset"> <doc xml:space="preserve">Looks as if the content is coming out of the canvas</doc> </member> <member name="hidden" value="4" c:identifier="GTK_BORDER_STYLE_HIDDEN" glib:nick="hidden"> <doc xml:space="preserve">Same as @GTK_BORDER_STYLE_NONE</doc> </member> <member name="dotted" value="5" c:identifier="GTK_BORDER_STYLE_DOTTED" glib:nick="dotted"> <doc xml:space="preserve">A series of round dots</doc> </member> <member name="dashed" value="6" c:identifier="GTK_BORDER_STYLE_DASHED" glib:nick="dashed"> <doc xml:space="preserve">A series of square-ended dashes</doc> </member> <member name="double" value="7" c:identifier="GTK_BORDER_STYLE_DOUBLE" glib:nick="double"> <doc xml:space="preserve">Two parallel lines with some space between them</doc> </member> <member name="groove" value="8" c:identifier="GTK_BORDER_STYLE_GROOVE" glib:nick="groove"> <doc xml:space="preserve">Looks as if it were carved in the canvas</doc> </member> <member name="ridge" value="9" c:identifier="GTK_BORDER_STYLE_RIDGE" glib:nick="ridge"> <doc xml:space="preserve">Looks as if it were coming out of the canvas</doc> </member> </enumeration> <class name="Box" c:symbol-prefix="box" c:type="GtkBox" parent="Container" glib:type-name="GtkBox" glib:get-type="gtk_box_get_type" glib:type-struct="BoxClass"> <doc xml:space="preserve">The GtkBox widget organizes child widgets into a rectangular area. The rectangular area of a GtkBox is organized into either a single row or a single column of child widgets depending upon the orientation. Thus, all children of a GtkBox are allocated one dimension in common, which is the height of a row, or the width of a column. GtkBox uses a notion of packing. Packing refers to adding widgets with reference to a particular position in a #GtkContainer. For a GtkBox, there are two reference positions: the start and the end of the box. For a vertical #GtkBox, the start is defined as the top of the box and the end is defined as the bottom. For a horizontal #GtkBox the start is defined as the left side and the end is defined as the right side. Use repeated calls to gtk_box_pack_start() to pack widgets into a GtkBox from start to end. Use gtk_box_pack_end() to add widgets from end to start. You may intersperse these calls and add widgets from both ends of the same GtkBox. Because GtkBox is a #GtkContainer, you may also use gtk_container_add() to insert widgets into the box, and they will be packed with the default values for expand and fill child properties. Use gtk_container_remove() to remove widgets from the GtkBox. Use gtk_box_set_homogeneous() to specify whether or not all children of the GtkBox are forced to get the same amount of space. Use gtk_box_set_spacing() to determine how much space will be minimally placed between all children in the GtkBox. Note that spacing is added between the children, while padding added by gtk_box_pack_start() or gtk_box_pack_end() is added on either side of the widget it belongs to. Use gtk_box_reorder_child() to move a GtkBox child to a different place in the box. Use gtk_box_set_child_packing() to reset the expand, fill and padding child properties. Use gtk_box_query_child_packing() to query these fields. Note that a single-row or single-column #GtkGrid provides exactly the same functionality as #GtkBox. # CSS nodes GtkBox uses a single CSS node with name box. In horizontal orientation, the nodes of the children are always arranged from left to right. So :first-child will always select the leftmost child, regardless of text direction.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_box_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the boxâs orientation.</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the number of pixels to place by default between children.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </constructor> <method name="get_baseline_position" c:identifier="gtk_box_get_baseline_position" version="3.10"> <doc xml:space="preserve">Gets the value set by gtk_box_set_baseline_position().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the baseline position</doc> <type name="BaselinePosition" c:type="GtkBaselinePosition"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> </parameters> </method> <method name="get_center_widget" c:identifier="gtk_box_get_center_widget" version="3.12"> <doc xml:space="preserve">Retrieves the center widget of the box.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the center widget or %NULL in case no center widget is set.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> </parameters> </method> <method name="get_homogeneous" c:identifier="gtk_box_get_homogeneous"> <doc xml:space="preserve">Returns whether the box is homogeneous (all children are the same size). See gtk_box_set_homogeneous().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the box is homogeneous.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> </parameters> </method> <method name="get_spacing" c:identifier="gtk_box_get_spacing"> <doc xml:space="preserve">Gets the value set by gtk_box_set_spacing().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">spacing between children</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> </parameters> </method> <method name="pack_end" c:identifier="gtk_box_pack_end"> <doc xml:space="preserve">Adds @child to @box, packed with reference to the end of @box. The @child is packed after (away from end of) any other child packed with reference to the end of @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to be added to @box</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the new child is to be given extra space allocated to @box. The extra space will be divided evenly between all children of @box that use this option</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="fill" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if space given to @child by the @expand option is actually allocated to @child, rather than just padding it. This parameter has no effect if @expand is set to %FALSE. A child is always allocated the full height of a horizontal #GtkBox and the full width of a vertical #GtkBox. This option affects the other dimension</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="padding" transfer-ownership="none"> <doc xml:space="preserve">extra space in pixels to put between this child and its neighbors, over and above the global amount specified by #GtkBox:spacing property. If @child is a widget at one of the reference ends of @box, then @padding pixels are also put between @child and the reference edge of @box</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="pack_start" c:identifier="gtk_box_pack_start"> <doc xml:space="preserve">Adds @child to @box, packed with reference to the start of @box. The @child is packed after any other child packed with reference to the start of @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to be added to @box</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the new child is to be given extra space allocated to @box. The extra space will be divided evenly between all children that use this option</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="fill" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if space given to @child by the @expand option is actually allocated to @child, rather than just padding it. This parameter has no effect if @expand is set to %FALSE. A child is always allocated the full height of a horizontal #GtkBox and the full width of a vertical #GtkBox. This option affects the other dimension</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="padding" transfer-ownership="none"> <doc xml:space="preserve">extra space in pixels to put between this child and its neighbors, over and above the global amount specified by #GtkBox:spacing property. If @child is a widget at one of the reference ends of @box, then @padding pixels are also put between @child and the reference edge of @box</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="query_child_packing" c:identifier="gtk_box_query_child_packing"> <doc xml:space="preserve">Obtains information about how @child is packed into @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget of the child to query</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="expand" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">pointer to return location for expand child property</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> <parameter name="fill" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">pointer to return location for fill child property</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> <parameter name="padding" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">pointer to return location for padding child property</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="pack_type" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">pointer to return location for pack-type child property</doc> <type name="PackType" c:type="GtkPackType*"/> </parameter> </parameters> </method> <method name="reorder_child" c:identifier="gtk_box_reorder_child"> <doc xml:space="preserve">Moves @child to a new @position in the list of @box children. The list contains widgets packed #GTK_PACK_START as well as widgets packed #GTK_PACK_END, in the order that these widgets were added to @box. A widgetâs position in the @box children list determines where the widget is packed into @box. A child widget at some position in the list will be packed just after all other widgets of the same packing type that appear earlier in the list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to move</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the new position for @child in the list of children of @box, starting from 0. If negative, indicates the end of the list</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_baseline_position" c:identifier="gtk_box_set_baseline_position" version="3.10"> <doc xml:space="preserve">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 wrt the extra space available.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBaselinePosition</doc> <type name="BaselinePosition" c:type="GtkBaselinePosition"/> </parameter> </parameters> </method> <method name="set_center_widget" c:identifier="gtk_box_set_center_widget" version="3.12"> <doc xml:space="preserve">Sets a center widget; that is a child widget that will be centered with respect to the full width of the box, even if the children at either side take up different amounts of space.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget to center</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_child_packing" c:identifier="gtk_box_set_child_packing"> <doc xml:space="preserve">Sets the way @child is packed into @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget of the child to set</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">the new value of the expand child property</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="fill" transfer-ownership="none"> <doc xml:space="preserve">the new value of the fill child property</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="padding" transfer-ownership="none"> <doc xml:space="preserve">the new value of the padding child property</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="pack_type" transfer-ownership="none"> <doc xml:space="preserve">the new value of the pack-type child property</doc> <type name="PackType" c:type="GtkPackType"/> </parameter> </parameters> </method> <method name="set_homogeneous" c:identifier="gtk_box_set_homogeneous"> <doc xml:space="preserve">Sets the #GtkBox:homogeneous property of @box, controlling whether or not all children of @box are given equal space in the box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">a boolean value, %TRUE to create equal allotments, %FALSE for variable allotments</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_spacing" c:identifier="gtk_box_set_spacing"> <doc xml:space="preserve">Sets the #GtkBox:spacing property of @box, which is the number of pixels to place between children of @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkBox*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the number of pixels to put between children</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="baseline-position" writable="1" transfer-ownership="none"> <type name="BaselinePosition"/> </property> <property name="homogeneous" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="spacing" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="BoxPrivate" c:type="GtkBoxPrivate*"/> </field> </class> <record name="BoxClass" c:type="GtkBoxClass" glib:is-gtype-struct-for="Box"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="BoxPrivate" c:type="GtkBoxPrivate" disguised="1"> </record> <interface name="Buildable" c:symbol-prefix="buildable" c:type="GtkBuildable" glib:type-name="GtkBuildable" glib:get-type="gtk_buildable_get_type" glib:type-struct="BuildableIface"> <doc xml:space="preserve">GtkBuildable allows objects to extend and customize their deserialization from [GtkBuilder UI descriptions][BUILDER-UI]. The interface includes methods for setting names and properties of objects, parsing custom tags and constructing child objects. The GtkBuildable interface is implemented by all widgets and many of the non-widget objects that are provided by GTK+. The main user of this interface is #GtkBuilder. There should be very little need for applications to call any of these functions directly. An object only needs to implement this interface if it needs to extend the #GtkBuilder format or run any extra routines at deserialization time.</doc> <virtual-method name="add_child" invoker="add_child" version="2.12"> <doc xml:space="preserve">Adds a child to @buildable. @type is an optional string describing how the child should be added.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">child to add</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="type" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">kind of child or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="construct_child" invoker="construct_child" version="2.12"> <doc xml:space="preserve">Constructs a child of @buildable with the name @name. #GtkBuilder calls this function if a âconstructorâ has been specified in the UI definition.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the constructed child</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">#GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of child to construct</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="custom_finished" invoker="custom_finished" version="2.12"> <doc xml:space="preserve">This is similar to gtk_buildable_parser_finished() but is called once for each custom tag handled by the @buildable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">the name of the tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data created in custom_tag_start</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </virtual-method> <virtual-method name="custom_tag_end" invoker="custom_tag_end" version="2.12"> <doc xml:space="preserve">This is called at the end of each custom element handled by the buildable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">#GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">name of tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data that will be passed in to parser functions</doc> <type name="gpointer" c:type="gpointer*"/> </parameter> </parameters> </virtual-method> <virtual-method name="custom_tag_start" invoker="custom_tag_start" version="2.12"> <doc xml:space="preserve">This is called for each unknown element under <child>.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a object has a custom implementation, %FALSE if it doesn't.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">name of tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parser" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GMarkupParser to fill in</doc> <type name="GLib.MarkupParser" c:type="GMarkupParser*"/> </parameter> <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">return location for user data that will be passed in to parser functions</doc> <type name="gpointer" c:type="gpointer*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_internal_child" invoker="get_internal_child" version="2.12"> <doc xml:space="preserve">Get the internal child called @childname of the @buildable object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the internal child of the buildable object</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="childname" transfer-ownership="none"> <doc xml:space="preserve">name of child</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_name" invoker="get_name" version="2.12"> <doc xml:space="preserve">Gets the name of the @buildable object. #GtkBuilder sets the name based on the [GtkBuilder UI definition][BUILDER-UI] used to construct the @buildable.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name set with gtk_buildable_set_name()</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="parser_finished" invoker="parser_finished" version="2.12"> <doc xml:space="preserve">Called when the builder finishes the parsing of a [GtkBuilder UI definition][BUILDER-UI]. Note that this will be called once for each time gtk_builder_add_from_file() or gtk_builder_add_from_string() is called on a builder.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_buildable_property" invoker="set_buildable_property" version="2.12"> <doc xml:space="preserve">Sets the property name @name to @value on the @buildable object.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of property</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">value of property</doc> <type name="GObject.Value" c:type="const GValue*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_name" invoker="set_name" version="2.12"> <doc xml:space="preserve">Sets the name of the @buildable object.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="add_child" c:identifier="gtk_buildable_add_child" version="2.12"> <doc xml:space="preserve">Adds a child to @buildable. @type is an optional string describing how the child should be added.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">child to add</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="type" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">kind of child or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="construct_child" c:identifier="gtk_buildable_construct_child" version="2.12"> <doc xml:space="preserve">Constructs a child of @buildable with the name @name. #GtkBuilder calls this function if a âconstructorâ has been specified in the UI definition.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the constructed child</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">#GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of child to construct</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="custom_finished" c:identifier="gtk_buildable_custom_finished" version="2.12"> <doc xml:space="preserve">This is similar to gtk_buildable_parser_finished() but is called once for each custom tag handled by the @buildable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">the name of the tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data created in custom_tag_start</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="custom_tag_end" c:identifier="gtk_buildable_custom_tag_end" version="2.12"> <doc xml:space="preserve">This is called at the end of each custom element handled by the buildable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">#GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">name of tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data that will be passed in to parser functions</doc> <type name="gpointer" c:type="gpointer*"/> </parameter> </parameters> </method> <method name="custom_tag_start" c:identifier="gtk_buildable_custom_tag_start" version="2.12"> <doc xml:space="preserve">This is called for each unknown element under <child>.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a object has a custom implementation, %FALSE if it doesn't.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">name of tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parser" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GMarkupParser to fill in</doc> <type name="GLib.MarkupParser" c:type="GMarkupParser*"/> </parameter> <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">return location for user data that will be passed in to parser functions</doc> <type name="gpointer" c:type="gpointer*"/> </parameter> </parameters> </method> <method name="get_internal_child" c:identifier="gtk_buildable_get_internal_child" version="2.12"> <doc xml:space="preserve">Get the internal child called @childname of the @buildable object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the internal child of the buildable object</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="childname" transfer-ownership="none"> <doc xml:space="preserve">name of child</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_name" c:identifier="gtk_buildable_get_name" version="2.12"> <doc xml:space="preserve">Gets the name of the @buildable object. #GtkBuilder sets the name based on the [GtkBuilder UI definition][BUILDER-UI] used to construct the @buildable.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name set with gtk_buildable_set_name()</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> </parameters> </method> <method name="parser_finished" c:identifier="gtk_buildable_parser_finished" version="2.12"> <doc xml:space="preserve">Called when the builder finishes the parsing of a [GtkBuilder UI definition][BUILDER-UI]. Note that this will be called once for each time gtk_builder_add_from_file() or gtk_builder_add_from_string() is called on a builder.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> </parameters> </method> <method name="set_buildable_property" c:identifier="gtk_buildable_set_buildable_property" version="2.12"> <doc xml:space="preserve">Sets the property name @name to @value on the @buildable object.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of property</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">value of property</doc> <type name="GObject.Value" c:type="const GValue*"/> </parameter> </parameters> </method> <method name="set_name" c:identifier="gtk_buildable_set_name" version="2.12"> <doc xml:space="preserve">Sets the name of the @buildable object.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> </interface> <record name="BuildableIface" c:type="GtkBuildableIface" glib:is-gtype-struct-for="Buildable"> <doc xml:space="preserve">The #GtkBuildableIface interface contains method that are necessary to allow #GtkBuilder to construct an object from a #GtkBuilder UI definition.</doc> <field name="g_iface"> <doc xml:space="preserve">the parent class</doc> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="set_name"> <callback name="set_name"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="get_name"> <callback name="get_name"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name set with gtk_buildable_set_name()</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> </parameters> </callback> </field> <field name="add_child"> <callback name="add_child"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">child to add</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="type" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">kind of child or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="set_buildable_property"> <callback name="set_buildable_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of property</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">value of property</doc> <type name="GObject.Value" c:type="const GValue*"/> </parameter> </parameters> </callback> </field> <field name="construct_child"> <callback name="construct_child"> <return-value transfer-ownership="full"> <doc xml:space="preserve">the constructed child</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">#GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of child to construct</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="custom_tag_start"> <callback name="custom_tag_start"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a object has a custom implementation, %FALSE if it doesn't.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">name of tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parser" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GMarkupParser to fill in</doc> <type name="GLib.MarkupParser" c:type="GMarkupParser*"/> </parameter> <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">return location for user data that will be passed in to parser functions</doc> <type name="gpointer" c:type="gpointer*"/> </parameter> </parameters> </callback> </field> <field name="custom_tag_end"> <callback name="custom_tag_end"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">#GtkBuilder used to construct this object</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">name of tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data that will be passed in to parser functions</doc> <type name="gpointer" c:type="gpointer*"/> </parameter> </parameters> </callback> </field> <field name="custom_finished"> <callback name="custom_finished"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">child object or %NULL for non-child tags</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="tagname" transfer-ownership="none"> <doc xml:space="preserve">the name of the tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data created in custom_tag_start</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> </field> <field name="parser_finished"> <callback name="parser_finished"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> </parameters> </callback> </field> <field name="get_internal_child"> <callback name="get_internal_child"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the internal child of the buildable object</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <parameter name="buildable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuildable</doc> <type name="Buildable" c:type="GtkBuildable*"/> </parameter> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="childname" transfer-ownership="none"> <doc xml:space="preserve">name of child</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> </record> <class name="Builder" c:symbol-prefix="builder" c:type="GtkBuilder" parent="GObject.Object" glib:type-name="GtkBuilder" glib:get-type="gtk_builder_get_type" glib:type-struct="BuilderClass"> <doc xml:space="preserve">A GtkBuilder is an auxiliary object that reads textual descriptions of a user interface and instantiates the described objects. To create a GtkBuilder from a user interface description, call gtk_builder_new_from_file(), gtk_builder_new_from_resource() or gtk_builder_new_from_string(). In the (unusual) case that you want to add user interface descriptions from multiple sources to the same GtkBuilder you can call gtk_builder_new() to get an empty builder and populate it by (multiple) calls to gtk_builder_add_from_file(), gtk_builder_add_from_resource() or gtk_builder_add_from_string(). A GtkBuilder holds a reference to all objects that it has constructed and drops these references when it is finalized. This finalization can cause the destruction of non-widget objects or widgets which are not contained in a toplevel window. For toplevel windows constructed by a builder, it is the responsibility of the user to call gtk_widget_destroy() to get rid of them and all the widgets they contain. The functions gtk_builder_get_object() and gtk_builder_get_objects() can be used to access the widgets in the interface by the names assigned to them inside the UI description. Toplevel windows returned by these functions will stay around until the user explicitly destroys them with gtk_widget_destroy(). Other widgets will either be part of a larger hierarchy constructed by the builder (in which case you should not have to worry about their lifecycle), or without a parent, in which case they have to be added to some container to make use of them. Non-widget objects need to be reffed with g_object_ref() to keep them beyond the lifespan of the builder. The function gtk_builder_connect_signals() and variants thereof can be used to connect handlers to the named signals in the description. # GtkBuilder UI Definitions # {#BUILDER-UI} GtkBuilder parses textual descriptions of user interfaces which are specified in an XML format which can be roughly described by the RELAX NG schema below. We refer to these descriptions as âGtkBuilder UI definitionsâ or just âUI definitionsâ if the context is clear. Do not confuse GtkBuilder UI Definitions with [GtkUIManager UI Definitions][XML-UI], which are more limited in scope. It is common to use `.ui` as the filename extension for files containing GtkBuilder UI definitions. [RELAX NG Compact Syntax](https://git.gnome.org/browse/gtk+/tree/gtk/gtkbuilder.rnc) The toplevel element is <interface>. It optionally takes a âdomainâ attribute, which will make the builder look for translated strings using dgettext() in the domain specified. This can also be done by calling gtk_builder_set_translation_domain() on the builder. Objects are described by <object> elements, which can contain <property> elements to set properties, <signal> elements which connect signals to handlers, and <child> elements, which describe child objects (most often widgets inside a container, but also e.g. actions in an action group, or columns in a tree model). A <child> element contains an <object> element which describes the child object. The target toolkit version(s) are described by <requires> elements, the âlibâ attribute specifies the widget library in question (currently the only supported value is âgtk+â) and the âversionâ attribute specifies the target version in the form â<major>.<minor>â. The builder will error out if the version requirements are not met. Typically, the specific kind of object represented by an <object> element is specified by the âclassâ attribute. If the type has not been loaded yet, GTK+ tries to find the get_type() function from the class name by applying heuristics. This works in most cases, but if necessary, it is possible to specify the name of the get_type() function explictly with the "type-func" attribute. As a special case, GtkBuilder allows to use an object that has been constructed by a #GtkUIManager in another part of the UI definition by specifying the id of the #GtkUIManager in the âconstructorâ attribute and the name of the object in the âidâ attribute. Objects may be given a name with the âidâ attribute, which allows the application to retrieve them from the builder with gtk_builder_get_object(). An id is also necessary to use the object as property value in other parts of the UI definition. GTK+ reserves ids starting and ending with ___ (3 underscores) for its own purposes. Setting properties of objects is pretty straightforward with the <property> element: the ânameâ attribute specifies the name of the property, and the content of the element specifies the value. If the âtranslatableâ attribute is set to a true value, GTK+ uses gettext() (or dgettext() if the builder has a translation domain set) to find a translation for the value. This happens before the value is parsed, so it can be used for properties of any type, but it is probably most useful for string properties. It is also possible to specify a context to disambiguate short strings, and comments which may help the translators. GtkBuilder can parse textual representations for the most common property types: characters, strings, integers, floating-point numbers, booleans (strings like âTRUEâ, âtâ, âyesâ, âyâ, â1â are interpreted as %TRUE, strings like âFALSEâ, âfâ, ânoâ, ânâ, â0â are interpreted as %FALSE), enumerations (can be specified by their name, nick or integer value), flags (can be specified by their name, nick, integer value, optionally combined with â|â, e.g. âGTK_VISIBLE|GTK_REALIZEDâ) and colors (in a format understood by gdk_rgba_parse()). GVariants can be specified in the format understood by g_variant_parse(), and pixbufs can be specified as a filename of an image file to load. Objects can be referred to by their name and by default refer to objects declared in the local xml fragment and objects exposed via gtk_builder_expose_object(). In general, GtkBuilder allows forward references to objects â declared in the local xml; an object doesnât have to be constructed before it can be referred to. The exception to this rule is that an object has to be constructed before it can be used as the value of a construct-only property. It is also possible to bind a property value to another object's property value using the attributes "bind-source" to specify the source object of the binding, "bind-property" to specify the source property and optionally "bind-flags" to specify the binding flags Internally builder implement this using GBinding objects. For more information see g_object_bind_property() Signal handlers are set up with the <signal> element. The ânameâ attribute specifies the name of the signal, and the âhandlerâ attribute specifies the function to connect to the signal. By default, GTK+ tries to find the handler using g_module_symbol(), but this can be changed by passing a custom #GtkBuilderConnectFunc to gtk_builder_connect_signals_full(). The remaining attributes, âafterâ, âswappedâ and âobjectâ, have the same meaning as the corresponding parameters of the g_signal_connect_object() or g_signal_connect_data() functions. A âlast_modification_timeâ attribute is also allowed, but it does not have a meaning to the builder. Sometimes it is necessary to refer to widgets which have implicitly been constructed by GTK+ as part of a composite widget, to set properties on them or to add further children (e.g. the @vbox of a #GtkDialog). This can be achieved by setting the âinternal-childâ propery of the <child> element to a true value. Note that GtkBuilder still requires an <object> element for the internal child, even if it has already been constructed. A number of widgets have different places where a child can be added (e.g. tabs vs. page content in notebooks). This can be reflected in a UI definition by specifying the âtypeâ attribute on a <child> The possible values for the âtypeâ attribute are described in the sections describing the widget-specific portions of UI definitions. # A GtkBuilder UI Definition |[ <interface> <object class="GtkDialog" id="dialog1"> <child internal-child="vbox"> <object class="GtkBox" id="vbox1"> <property name="border-width">10</property> <child internal-child="action_area"> <object class="GtkButtonBox" id="hbuttonbox1"> <property name="border-width">20</property> <child> <object class="GtkButton" id="ok_button"> <property name="label">gtk-ok</property> <property name="use-stock">TRUE</property> <signal name="clicked" handler="ok_button_clicked"/> </object> </child> </object> </child> </object> </child> </object> </interface> ]| Beyond this general structure, several object classes define their own XML DTD fragments for filling in the ANY placeholders in the DTD above. Note that a custom element in a <child> element gets parsed by the custom tag handler of the parent object, while a custom element in an <object> element gets parsed by the custom tag handler of the object. These XML fragments are explained in the documentation of the respective objects. Additionally, since 3.10 a special <template> tag has been added to the format allowing one to define a widget classâs components. See the [GtkWidget documentation][composite-templates] for details.</doc> <constructor name="new" c:identifier="gtk_builder_new" version="2.12"> <doc xml:space="preserve">Creates a new empty builder object. This function is only useful if you intend to make multiple calls to gtk_builder_add_from_file(), gtk_builder_add_from_resource() or gtk_builder_add_from_string() in order to merge multiple UI descriptions into a single builder. Most users will probably want to use gtk_builder_new_from_file(), gtk_builder_new_from_resource() or gtk_builder_new_from_string().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new (empty) #GtkBuilder object</doc> <type name="Builder" c:type="GtkBuilder*"/> </return-value> </constructor> <constructor name="new_from_file" c:identifier="gtk_builder_new_from_file" version="3.10"> <doc xml:space="preserve">Builds the [GtkBuilder UI definition][BUILDER-UI] 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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GtkBuilder containing the described interface</doc> <type name="Builder" c:type="GtkBuilder*"/> </return-value> <parameters> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">filename of user interface description file</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_resource" c:identifier="gtk_builder_new_from_resource" version="3.10"> <doc xml:space="preserve">Builds the [GtkBuilder UI definition][BUILDER-UI] at @resource_path. If there is an error locating the resource or parsing the description, then the program will be aborted.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GtkBuilder containing the described interface</doc> <type name="Builder" c:type="GtkBuilder*"/> </return-value> <parameters> <parameter name="resource_path" transfer-ownership="none"> <doc xml:space="preserve">a #GResource resource path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_string" c:identifier="gtk_builder_new_from_string" version="3.10"> <doc xml:space="preserve">Builds the user interface described by @string (in the [GtkBuilder UI definition][BUILDER-UI] format). 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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GtkBuilder containing the interface described by @string</doc> <type name="Builder" c:type="GtkBuilder*"/> </return-value> <parameters> <parameter name="string" transfer-ownership="none"> <doc xml:space="preserve">a user interface (XML) description</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">the length of @string, or -1</doc> <type name="gssize" c:type="gssize"/> </parameter> </parameters> </constructor> <virtual-method name="get_type_from_name" invoker="get_type_from_name" version="2.12"> <doc xml:space="preserve">Looks up a type by name, using the virtual function that #GtkBuilder has for that purpose. This is mainly used when implementing the #GtkBuildable interface on a type.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GType found for @type_name or #G_TYPE_INVALID if no type was found</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="type_name" transfer-ownership="none"> <doc xml:space="preserve">type name to lookup</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </virtual-method> <method name="add_callback_symbol" c:identifier="gtk_builder_add_callback_symbol" version="3.10"> <doc xml:space="preserve">Adds the @callback_symbol to the scope of @builder under the given @callback_name. Using this function overrides the behavior of gtk_builder_connect_signals() 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="callback_name" transfer-ownership="none"> <doc xml:space="preserve">The name of the callback, as expected in the XML</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="callback_symbol" transfer-ownership="none" scope="async"> <doc xml:space="preserve">The callback pointer</doc> <type name="GObject.Callback" c:type="GCallback"/> </parameter> </parameters> </method> <method name="add_callback_symbols" c:identifier="gtk_builder_add_callback_symbols" version="3.10" introspectable="0"> <doc xml:space="preserve">A convenience function to add many callbacks instead of calling gtk_builder_add_callback_symbol() for each symbol.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="first_callback_name" transfer-ownership="none"> <doc xml:space="preserve">The name of the callback, as expected in the XML</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="first_callback_symbol" transfer-ownership="none" scope="async"> <doc xml:space="preserve">The callback pointer</doc> <type name="GObject.Callback" c:type="GCallback"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">A list of callback name and callback symbol pairs terminated with %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="add_from_file" c:identifier="gtk_builder_add_from_file" version="2.12" throws="1"> <doc xml:space="preserve">Parses a file containing a [GtkBuilder UI definition][BUILDER-UI] and merges it with the current contents of @builder. Most users will probably want to use gtk_builder_new_from_file(). 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 domain. 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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A positive value on success, 0 if an error occurred</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the name of the file to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_from_resource" c:identifier="gtk_builder_add_from_resource" version="3.4" throws="1"> <doc xml:space="preserve">Parses a resource file containing a [GtkBuilder UI definition][BUILDER-UI] and merges it with the current contents of @builder. Most users will probably want to use gtk_builder_new_from_resource(). 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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A positive value on success, 0 if an error occurred</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="resource_path" transfer-ownership="none"> <doc xml:space="preserve">the path of the resource file to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_from_string" c:identifier="gtk_builder_add_from_string" version="2.12" throws="1"> <doc xml:space="preserve">Parses a string containing a [GtkBuilder UI definition][BUILDER-UI] and merges it with the current contents of @builder. Most users will probably want to use gtk_builder_new_from_string(). Upon errors 0 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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A positive value on success, 0 if an error occurred</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">the string to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">the length of @buffer (may be -1 if @buffer is nul-terminated)</doc> <type name="gsize" c:type="gsize"/> </parameter> </parameters> </method> <method name="add_objects_from_file" c:identifier="gtk_builder_add_objects_from_file" version="2.14" throws="1"> <doc xml:space="preserve">Parses a file containing a [GtkBuilder UI definition][BUILDER-UI] 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A positive value on success, 0 if an error occurred</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the name of the file to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="object_ids" transfer-ownership="none"> <doc xml:space="preserve">nul-terminated array of objects to build</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </parameter> </parameters> </method> <method name="add_objects_from_resource" c:identifier="gtk_builder_add_objects_from_resource" version="3.4" throws="1"> <doc xml:space="preserve">Parses a resource file containing a [GtkBuilder UI definition][BUILDER-UI] 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A positive value on success, 0 if an error occurred</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="resource_path" transfer-ownership="none"> <doc xml:space="preserve">the path of the resource file to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="object_ids" transfer-ownership="none"> <doc xml:space="preserve">nul-terminated array of objects to build</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </parameter> </parameters> </method> <method name="add_objects_from_string" c:identifier="gtk_builder_add_objects_from_string" version="2.14" throws="1"> <doc xml:space="preserve">Parses a string containing a [GtkBuilder UI definition][BUILDER-UI] 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 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A positive value on success, 0 if an error occurred</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">the string to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">the length of @buffer (may be -1 if @buffer is nul-terminated)</doc> <type name="gsize" c:type="gsize"/> </parameter> <parameter name="object_ids" transfer-ownership="none"> <doc xml:space="preserve">nul-terminated array of objects to build</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </parameter> </parameters> </method> <method name="connect_signals" c:identifier="gtk_builder_connect_signals" version="2.12"> <doc xml:space="preserve">This method is a simpler variation of gtk_builder_connect_signals_full(). It uses symbols explicitly added to @builder with prior calls to gtk_builder_add_callback_symbol(). In the case that symbols are not explicitly added; it uses #GModuleâs introspective features (by opening the module %NULL) to look at the applicationâs symbol table. From here it tries to match the signal handler names given in the interface description with symbols in the application and connects the signals. Note that this function can only be called once, subsequent calls will do nothing. Note that unless gtk_builder_add_callback_symbol() is called for all signal callbacks which are referenced by the loaded XML, this function will require that #GModule be supported on the platform. If you rely on #GModule support to lookup callbacks in the symbol table, the following details should be noted: When compiling applications for Windows, you must declare signal callbacks with #G_MODULE_EXPORT, or they will not be put in the symbol table. On Linux and Unices, this is not necessary; applications should instead be compiled with the -Wl,--export-dynamic CFLAGS, and linked against gmodule-export-2.0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass back with all signals</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="connect_signals_full" c:identifier="gtk_builder_connect_signals_full" version="2.12"> <doc xml:space="preserve">This function can be thought of the interpreted language binding version of gtk_builder_connect_signals(), except that it does not require GModule to function correctly.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">the function used to connect the signals</doc> <type name="BuilderConnectFunc" c:type="GtkBuilderConnectFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">arbitrary data that will be passed to the connection function</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="expose_object" c:identifier="gtk_builder_expose_object" version="3.8"> <doc xml:space="preserve">Add @object to the @builder object pool so it can be referenced just like any other object built by builder.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the object exposed to the builder</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="object" transfer-ownership="none"> <doc xml:space="preserve">the object to expose</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> </parameters> </method> <method name="extend_with_template" c:identifier="gtk_builder_extend_with_template" throws="1"> <doc xml:space="preserve">Main private entry point for building composite container components from template XML. This is exported purely to let gtk-builder-tool validate templates, applications have no need to call this function.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A positive value on success, 0 if an error occurred</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget that is being extended</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="template_type" transfer-ownership="none"> <doc xml:space="preserve">the type that the template is for</doc> <type name="GType" c:type="GType"/> </parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">the string to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">the length of @buffer (may be -1 if @buffer is nul-terminated)</doc> <type name="gsize" c:type="gsize"/> </parameter> </parameters> </method> <method name="get_application" c:identifier="gtk_builder_get_application" version="3.10"> <doc xml:space="preserve">Gets the #GtkApplication associated with the builder. The #GtkApplication is used for creating action proxies as requested from XML that the builder is loading. By default, the builder uses the default application: the one from g_application_get_default(). If you want to use another application for constructing proxies, use gtk_builder_set_application().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the application being used by the builder, or %NULL</doc> <type name="Application" c:type="GtkApplication*"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> </parameters> </method> <method name="get_object" c:identifier="gtk_builder_get_object" version="2.12"> <doc xml:space="preserve">Gets the object named @name. Note that this function does not increment the reference count of the returned object.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the object named @name or %NULL if it could not be found in the object tree.</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of object to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_objects" c:identifier="gtk_builder_get_objects" version="2.12"> <doc xml:space="preserve">Gets all objects that have been constructed by @builder. Note that this function does not increment the reference counts of the returned objects.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a newly-allocated #GSList containing all the objects constructed by the #GtkBuilder instance. It should be freed by g_slist_free()</doc> <type name="GLib.SList" c:type="GSList*"> <type name="GObject.Object"/> </type> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> </parameters> </method> <method name="get_translation_domain" c:identifier="gtk_builder_get_translation_domain" version="2.12"> <doc xml:space="preserve">Gets the translation domain of @builder.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the translation domain. This string is owned by the builder object and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> </parameters> </method> <method name="get_type_from_name" c:identifier="gtk_builder_get_type_from_name" version="2.12"> <doc xml:space="preserve">Looks up a type by name, using the virtual function that #GtkBuilder has for that purpose. This is mainly used when implementing the #GtkBuildable interface on a type.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GType found for @type_name or #G_TYPE_INVALID if no type was found</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="type_name" transfer-ownership="none"> <doc xml:space="preserve">type name to lookup</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="lookup_callback_symbol" c:identifier="gtk_builder_lookup_callback_symbol" version="3.10" introspectable="0"> <doc xml:space="preserve">Fetches a symbol previously added to @builder with gtk_builder_add_callback_symbols() This function is intended for possible use in language bindings or for any case that one might be cusomizing signal connections using gtk_builder_connect_signals_full()</doc> <return-value nullable="1"> <doc xml:space="preserve">The callback symbol in @builder for @callback_name, or %NULL</doc> <type name="GObject.Callback" c:type="GCallback"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="callback_name" transfer-ownership="none"> <doc xml:space="preserve">The name of the callback</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_application" c:identifier="gtk_builder_set_application" version="3.10"> <doc xml:space="preserve">Sets the application associated with @builder. You only need this function if there is more than one #GApplication in your process. @application cannot be %NULL.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">a #GtkApplication</doc> <type name="Application" c:type="GtkApplication*"/> </parameter> </parameters> </method> <method name="set_translation_domain" c:identifier="gtk_builder_set_translation_domain" version="2.12"> <doc xml:space="preserve">Sets the translation domain of @builder. See #GtkBuilder:translation-domain.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="domain" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the translation domain or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="value_from_string" c:identifier="gtk_builder_value_from_string" version="2.12" throws="1"> <doc xml:space="preserve">This function demarshals a value from a string. This function calls g_value_init() on the @value argument, so it need not be initialised beforehand. This function can handle char, uchar, boolean, int, uint, long, ulong, enum, flags, float, double, string, #GdkColor, #GdkRGBA and #GtkAdjustment type values. Support for #GtkWidget type values is still to come. Upon errors %FALSE will be returned and @error will be assigned a #GError from the #GTK_BUILDER_ERROR domain.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec for the property</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> <parameter name="string" transfer-ownership="none"> <doc xml:space="preserve">the string representation of the value</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the #GValue to store the result in</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="value_from_string_type" c:identifier="gtk_builder_value_from_string_type" version="2.12" throws="1"> <doc xml:space="preserve">Like gtk_builder_value_from_string(), this function demarshals a value from a string, but takes a #GType instead of #GParamSpec. This function 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the #GType of the value</doc> <type name="GType" c:type="GType"/> </parameter> <parameter name="string" transfer-ownership="none"> <doc xml:space="preserve">the string representation of the value</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the #GValue to store the result in</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <property name="translation-domain" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The translation domain used when translating property values that have been marked as translatable in interface descriptions. If the translation domain is %NULL, #GtkBuilder uses gettext(), otherwise g_dgettext().</doc> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="BuilderPrivate" c:type="GtkBuilderPrivate*"/> </field> </class> <record name="BuilderClass" c:type="GtkBuilderClass" glib:is-gtype-struct-for="Builder"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="get_type_from_name"> <callback name="get_type_from_name"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GType found for @type_name or #G_TYPE_INVALID if no type was found</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="type_name" transfer-ownership="none"> <doc xml:space="preserve">type name to lookup</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="BuilderConnectFunc" c:type="GtkBuilderConnectFunc" version="2.12"> <doc xml:space="preserve">This is the signature of a function used to connect signals. It is used by the gtk_builder_connect_signals() and gtk_builder_connect_signals_full() methods. It is mainly intended for interpreted language bindings, but could be useful where the programmer wants more control over the signal connection process. Note that this function can only be called once, subsequent calls will do nothing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="builder" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBuilder</doc> <type name="Builder" c:type="GtkBuilder*"/> </parameter> <parameter name="object" transfer-ownership="none"> <doc xml:space="preserve">object to connect a signal to</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="signal_name" transfer-ownership="none"> <doc xml:space="preserve">name of the signal</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="handler_name" transfer-ownership="none"> <doc xml:space="preserve">name of the handler</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="connect_object" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GObject, if non-%NULL, use g_signal_connect_object()</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">#GConnectFlags to use</doc> <type name="GObject.ConnectFlags" c:type="GConnectFlags"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="6"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <enumeration name="BuilderError" glib:type-name="GtkBuilderError" glib:get-type="gtk_builder_error_get_type" c:type="GtkBuilderError" glib:error-domain="gtk-builder-error-quark"> <doc xml:space="preserve">Error codes that identify various errors that can occur while using #GtkBuilder.</doc> <member name="invalid_type_function" value="0" c:identifier="GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION" glib:nick="invalid-type-function"> <doc xml:space="preserve">A type-func attribute didnât name a function that returns a #GType.</doc> </member> <member name="unhandled_tag" value="1" c:identifier="GTK_BUILDER_ERROR_UNHANDLED_TAG" glib:nick="unhandled-tag"> <doc xml:space="preserve">The input contained a tag that #GtkBuilder canât handle.</doc> </member> <member name="missing_attribute" value="2" c:identifier="GTK_BUILDER_ERROR_MISSING_ATTRIBUTE" glib:nick="missing-attribute"> <doc xml:space="preserve">An attribute that is required by #GtkBuilder was missing.</doc> </member> <member name="invalid_attribute" value="3" c:identifier="GTK_BUILDER_ERROR_INVALID_ATTRIBUTE" glib:nick="invalid-attribute"> <doc xml:space="preserve">#GtkBuilder found an attribute that it doesnât understand.</doc> </member> <member name="invalid_tag" value="4" c:identifier="GTK_BUILDER_ERROR_INVALID_TAG" glib:nick="invalid-tag"> <doc xml:space="preserve">#GtkBuilder found a tag that it doesnât understand.</doc> </member> <member name="missing_property_value" value="5" c:identifier="GTK_BUILDER_ERROR_MISSING_PROPERTY_VALUE" glib:nick="missing-property-value"> <doc xml:space="preserve">A required property value was missing.</doc> </member> <member name="invalid_value" value="6" c:identifier="GTK_BUILDER_ERROR_INVALID_VALUE" glib:nick="invalid-value"> <doc xml:space="preserve">#GtkBuilder couldnât parse some attribute value.</doc> </member> <member name="version_mismatch" value="7" c:identifier="GTK_BUILDER_ERROR_VERSION_MISMATCH" glib:nick="version-mismatch"> <doc xml:space="preserve">The input file requires a newer version of GTK+.</doc> </member> <member name="duplicate_id" value="8" c:identifier="GTK_BUILDER_ERROR_DUPLICATE_ID" glib:nick="duplicate-id"> <doc xml:space="preserve">An object id occurred twice.</doc> </member> <member name="object_type_refused" value="9" c:identifier="GTK_BUILDER_ERROR_OBJECT_TYPE_REFUSED" glib:nick="object-type-refused"> <doc xml:space="preserve">A specified object type is of the same type or derived from the type of the composite class being extended with builder XML.</doc> </member> <member name="template_mismatch" value="10" c:identifier="GTK_BUILDER_ERROR_TEMPLATE_MISMATCH" glib:nick="template-mismatch"> <doc xml:space="preserve">The wrong type was specified in a composite classâs template XML</doc> </member> <member name="invalid_property" value="11" c:identifier="GTK_BUILDER_ERROR_INVALID_PROPERTY" glib:nick="invalid-property"> <doc xml:space="preserve">The specified property is unknown for the object class.</doc> </member> <member name="invalid_signal" value="12" c:identifier="GTK_BUILDER_ERROR_INVALID_SIGNAL" glib:nick="invalid-signal"> <doc xml:space="preserve">The specified signal is unknown for the object class.</doc> </member> <member name="invalid_id" value="13" c:identifier="GTK_BUILDER_ERROR_INVALID_ID" glib:nick="invalid-id"> <doc xml:space="preserve">An object id is unknown</doc> </member> <function name="quark" c:identifier="gtk_builder_error_quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> </enumeration> <record name="BuilderPrivate" c:type="GtkBuilderPrivate" disguised="1"> </record> <class name="Button" c:symbol-prefix="button" c:type="GtkButton" parent="Bin" glib:type-name="GtkButton" glib:get-type="gtk_button_get_type" glib:type-struct="ButtonClass"> <doc xml:space="preserve">The #GtkButton widget is generally used to trigger a callback function that is called when the button is pressed. The various signals and how to use them are outlined below. The #GtkButton widget can hold any valid child widget. That is, it can hold almost any other standard #GtkWidget. The most commonly used child is the #GtkLabel. # CSS nodes GtkButton has a single CSS node with name button. The node will get the style classes .image-button or .text-button, if the content is just an image or label, respectively. It may also receive the .flat style class. Other style classes that are commonly used with GtkButton include .suggested-action and .destructive-action. In special cases, buttons can be made round by adding the .circular style class. Button-like widgets like #GtkToggleButton, #GtkMenuButton, #GtkVolumeButton, #GtkLockButton, #GtkColorButton, #GtkFontButton or #GtkFileChooserButton use style classes such as .toggle, .popup, .scale, .lock, .color, .font, .file to differentiate themselves from a plain GtkButton.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_button_new"> <doc xml:space="preserve">Creates a new #GtkButton widget. To add a child widget to the button, use gtk_container_add().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The newly created #GtkButton widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_from_icon_name" c:identifier="gtk_button_new_from_icon_name" version="3.10"> <doc xml:space="preserve">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. This function is a convenience wrapper around gtk_button_new() and gtk_button_set_image().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkButton displaying the themed icon</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an icon name or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">an icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </constructor> <constructor name="new_from_stock" c:identifier="gtk_button_new_from_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkButton containing the image and text from a stock item. Some stock ids have preprocessor macros like #GTK_STOCK_OK and #GTK_STOCK_APPLY. If @stock_id is unknown, then it will be treated as a mnemonic label (as for gtk_button_new_with_mnemonic()).</doc> <doc-deprecated xml:space="preserve">Use gtk_button_new_with_label() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the name of the stock item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_label" c:identifier="gtk_button_new_with_label"> <doc xml:space="preserve">Creates a #GtkButton widget with a #GtkLabel child containing the given text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The newly created #GtkButton widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">The text you want the #GtkLabel to hold.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_button_new_with_mnemonic"> <doc xml:space="preserve">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 Alt and that key activates the button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">The text of the button, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="clicked" invoker="clicked"> <doc xml:space="preserve">Emits a #GtkButton::clicked signal to the given #GtkButton.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="enter" invoker="enter" deprecated="1" deprecated-version="2.20"> <doc xml:space="preserve">Emits a #GtkButton::enter signal to the given #GtkButton.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::enter-notify-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="leave" invoker="leave" deprecated="1" deprecated-version="2.20"> <doc xml:space="preserve">Emits a #GtkButton::leave signal to the given #GtkButton.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::leave-notify-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="pressed" invoker="pressed" deprecated="1" deprecated-version="2.20"> <doc xml:space="preserve">Emits a #GtkButton::pressed signal to the given #GtkButton.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::button-press-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="released" invoker="released" deprecated="1" deprecated-version="2.20"> <doc xml:space="preserve">Emits a #GtkButton::released signal to the given #GtkButton.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::button-release-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="clicked" c:identifier="gtk_button_clicked"> <doc xml:space="preserve">Emits a #GtkButton::clicked signal to the given #GtkButton.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="enter" c:identifier="gtk_button_enter" deprecated="1" deprecated-version="2.20"> <doc xml:space="preserve">Emits a #GtkButton::enter signal to the given #GtkButton.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::enter-notify-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_alignment" c:identifier="gtk_button_get_alignment" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the alignment of the child in the button.</doc> <doc-deprecated xml:space="preserve">Access the child widget directly if you need to control its alignment.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="xalign" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for horizontal alignment</doc> <type name="gfloat" c:type="gfloat*"/> </parameter> <parameter name="yalign" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for vertical alignment</doc> <type name="gfloat" c:type="gfloat*"/> </parameter> </parameters> </method> <method name="get_always_show_image" c:identifier="gtk_button_get_always_show_image" version="3.6"> <doc xml:space="preserve">Returns whether the button will ignore the #GtkSettings:gtk-button-images setting and always show the image, if available.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the button will always show the image</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_event_window" c:identifier="gtk_button_get_event_window" version="2.22"> <doc xml:space="preserve">Returns the buttonâs event window if it is realized, %NULL otherwise. This function should be rarely needed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">@buttonâs event window.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_focus_on_click" c:identifier="gtk_button_get_focus_on_click" version="2.4" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Returns whether the button grabs focus when it is clicked with the mouse. See gtk_button_set_focus_on_click().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_focus_on_click() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the button grabs focus when it is clicked with the mouse.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_image" c:identifier="gtk_button_get_image" version="2.6"> <doc xml:space="preserve">Gets the widget that is currenty set as the image of @button. This may have been explicitly set by gtk_button_set_image() or constructed by gtk_button_new_from_stock().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkWidget or %NULL in case there is no image</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_image_position" c:identifier="gtk_button_get_image_position" version="2.10"> <doc xml:space="preserve">Gets the position of the image relative to the text inside the button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the position</doc> <type name="PositionType" c:type="GtkPositionType"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_label" c:identifier="gtk_button_get_label"> <doc xml:space="preserve">Fetches the text from the label of the button, as set by gtk_button_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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The text of the label widget. This string is owned by the widget and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_relief" c:identifier="gtk_button_get_relief"> <doc xml:space="preserve">Returns the current relief style of the given #GtkButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current #GtkReliefStyle</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want the #GtkReliefStyle from.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_use_stock" c:identifier="gtk_button_get_use_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether the button label is a stock item.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the button label is used to select a stock item instead of being used directly as the label text.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="get_use_underline" c:identifier="gtk_button_get_use_underline"> <doc xml:space="preserve">Returns whether an embedded underline in the button label indicates a mnemonic. See gtk_button_set_use_underline ().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an embedded underline in the button label indicates the mnemonic accelerator keys.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="leave" c:identifier="gtk_button_leave" deprecated="1" deprecated-version="2.20"> <doc xml:space="preserve">Emits a #GtkButton::leave signal to the given #GtkButton.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::leave-notify-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="pressed" c:identifier="gtk_button_pressed" deprecated="1" deprecated-version="2.20"> <doc xml:space="preserve">Emits a #GtkButton::pressed signal to the given #GtkButton.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::button-press-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="released" c:identifier="gtk_button_released" deprecated="1" deprecated-version="2.20"> <doc xml:space="preserve">Emits a #GtkButton::released signal to the given #GtkButton.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::button-release-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> </parameters> </method> <method name="set_alignment" c:identifier="gtk_button_set_alignment" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the alignment of the child. This property has no effect unless the child is a #GtkMisc or a #GtkAlignment.</doc> <doc-deprecated xml:space="preserve">Access the child widget directly if you need to control its alignment.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">the horizontal position of the child, 0.0 is left aligned, 1.0 is right aligned</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">the vertical position of the child, 0.0 is top aligned, 1.0 is bottom aligned</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="set_always_show_image" c:identifier="gtk_button_set_always_show_image" version="3.6"> <doc xml:space="preserve">If %TRUE, the button will ignore the #GtkSettings:gtk-button-images setting and always show the image, if available. Use this property if the button would be useless or hard to use without the image.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="always_show" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menuitem should always show the image</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_focus_on_click" c:identifier="gtk_button_set_focus_on_click" version="2.4" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Sets whether the button will 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.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_focus_on_click() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="focus_on_click" transfer-ownership="none"> <doc xml:space="preserve">whether the button grabs focus when clicked with the mouse</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_image" c:identifier="gtk_button_set_image" version="2.6"> <doc xml:space="preserve">Set the image of @button to the given widget. The image will be displayed if the label text is %NULL or if #GtkButton:always-show-image is %TRUE. You donât have to call gtk_widget_show() on @image yourself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="image" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a widget to set as the image for the button, or %NULL to unset</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_image_position" c:identifier="gtk_button_set_image_position" version="2.10"> <doc xml:space="preserve">Sets the position of the image relative to the text inside the button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_button_set_label"> <doc xml:space="preserve">Sets the text of the label of the button to @str. This text is also used to select the stock item if gtk_button_set_use_stock() is used. This will also clear any previously set labels.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_relief" c:identifier="gtk_button_set_relief"> <doc xml:space="preserve">Sets the relief style of the edges of the given #GtkButton widget. Two styles exist, %GTK_RELIEF_NORMAL and %GTK_RELIEF_NONE. The default style is, as one can guess, %GTK_RELIEF_NORMAL. The deprecated value %GTK_RELIEF_HALF behaves the same as %GTK_RELIEF_NORMAL.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to set relief styles of</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="relief" transfer-ownership="none"> <doc xml:space="preserve">The GtkReliefStyle as described above</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </parameter> </parameters> </method> <method name="set_use_stock" c:identifier="gtk_button_set_use_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">If %TRUE, the label set on the button is used as a stock id to select the stock item for the button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="use_stock" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the button should use a stock item</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_use_underline" c:identifier="gtk_button_set_use_underline"> <doc xml:space="preserve">If true, an underline in the text of the button label indicates the next character should be used for the mnemonic accelerator key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButton</doc> <type name="Button" c:type="GtkButton*"/> </instance-parameter> <parameter name="use_underline" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if underlines in the text indicate mnemonics</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="always-show-image" version="3.6" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, the button will ignore the #GtkSettings:gtk-button-images setting and always show the image, if available. Use this property if the button would be useless or hard to use without the image.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="image" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The child widget to appear next to the button text.</doc> <type name="Widget"/> </property> <property name="image-position" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The position of the image relative to the text inside the button.</doc> <type name="PositionType"/> </property> <property name="label" writable="1" construct="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="relief" writable="1" transfer-ownership="none"> <type name="ReliefStyle"/> </property> <property name="use-stock" deprecated="1" deprecated-version="3.10" writable="1" construct="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="use-underline" writable="1" construct="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="xalign" version="2.4" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If the child of the button is a #GtkMisc or #GtkAlignment, this property can be used to control its horizontal alignment. 0.0 is left aligned, 1.0 is right aligned.</doc> <doc-deprecated xml:space="preserve">Access the child widget directly if you need to control its alignment.</doc-deprecated> <type name="gfloat" c:type="gfloat"/> </property> <property name="yalign" version="2.4" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If the child of the button is a #GtkMisc or #GtkAlignment, this property can be used to control its vertical alignment. 0.0 is top aligned, 1.0 is bottom aligned.</doc> <doc-deprecated xml:space="preserve">Access the child widget directly if you need to control its alignment.</doc-deprecated> <type name="gfloat" c:type="gfloat"/> </property> <field name="bin" readable="0" private="1"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="ButtonPrivate" c:type="GtkButtonPrivate*"/> </field> <glib:signal name="activate" when="first" action="1"> <doc xml:space="preserve">The ::activate signal on GtkButton 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 #GtkButton::clicked signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="clicked" when="first" action="1"> <doc xml:space="preserve">Emitted when the button has been activated (pressed and released).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="enter" when="first" deprecated="1" deprecated-version="2.8"> <doc xml:space="preserve">Emitted when the pointer enters the button.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::enter-notify-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="leave" when="first" deprecated="1" deprecated-version="2.8"> <doc xml:space="preserve">Emitted when the pointer leaves the button.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::leave-notify-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="pressed" when="first" deprecated="1" deprecated-version="2.8"> <doc xml:space="preserve">Emitted when the button is pressed.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::button-press-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="released" when="first" deprecated="1" deprecated-version="2.8"> <doc xml:space="preserve">Emitted when the button is released.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::button-release-event signal.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="ButtonAccessible" c:symbol-prefix="button_accessible" c:type="GtkButtonAccessible" parent="ContainerAccessible" glib:type-name="GtkButtonAccessible" glib:get-type="gtk_button_accessible_get_type" glib:type-struct="ButtonAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="ButtonAccessiblePrivate" c:type="GtkButtonAccessiblePrivate*"/> </field> </class> <record name="ButtonAccessibleClass" c:type="GtkButtonAccessibleClass" glib:is-gtype-struct-for="ButtonAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="ButtonAccessiblePrivate" c:type="GtkButtonAccessiblePrivate" disguised="1"> </record> <class name="ButtonBox" c:symbol-prefix="button_box" c:type="GtkButtonBox" parent="Box" glib:type-name="GtkButtonBox" glib:get-type="gtk_button_box_get_type" glib:type-struct="ButtonBoxClass"> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_button_box_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkButtonBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkButtonBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the box's orientation.</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </constructor> <method name="get_child_non_homogeneous" c:identifier="gtk_button_box_get_child_non_homogeneous" version="3.2"> <doc xml:space="preserve">Returns whether the child is exempted from homogenous sizing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the child is not subject to homogenous sizing</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButtonBox</doc> <type name="ButtonBox" c:type="GtkButtonBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_child_secondary" c:identifier="gtk_button_box_get_child_secondary" version="2.4"> <doc xml:space="preserve">Returns whether @child should appear in a secondary group of children.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @child should appear in a secondary group of children.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButtonBox</doc> <type name="ButtonBox" c:type="GtkButtonBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_layout" c:identifier="gtk_button_box_get_layout"> <doc xml:space="preserve">Retrieves the method being used to arrange the buttons in a button box.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the method used to lay out buttons in @widget.</doc> <type name="ButtonBoxStyle" c:type="GtkButtonBoxStyle"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButtonBox</doc> <type name="ButtonBox" c:type="GtkButtonBox*"/> </instance-parameter> </parameters> </method> <method name="set_child_non_homogeneous" c:identifier="gtk_button_box_set_child_non_homogeneous" version="3.2"> <doc xml:space="preserve">Sets whether the child is exempted from homogeous sizing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButtonBox</doc> <type name="ButtonBox" c:type="GtkButtonBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="non_homogeneous" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_child_secondary" c:identifier="gtk_button_box_set_child_secondary"> <doc xml:space="preserve">Sets whether @child should appear in a secondary group of children. A typical use of a secondary child is the help button in a dialog. This group appears after the other children if the style is %GTK_BUTTONBOX_START, %GTK_BUTTONBOX_SPREAD or %GTK_BUTTONBOX_EDGE, and before the other children if the style is %GTK_BUTTONBOX_END. For horizontal button boxes, the definition of before/after depends on direction of the widget (see gtk_widget_set_direction()). If the style is %GTK_BUTTONBOX_START or %GTK_BUTTONBOX_END, then the secondary children are aligned at the other end of the button box from the main children. For the other styles, they appear immediately next to the main children.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButtonBox</doc> <type name="ButtonBox" c:type="GtkButtonBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="is_secondary" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, the @child appears in a secondary group of the button box.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_layout" c:identifier="gtk_button_box_set_layout"> <doc xml:space="preserve">Changes the way buttons are arranged in their container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkButtonBox</doc> <type name="ButtonBox" c:type="GtkButtonBox*"/> </instance-parameter> <parameter name="layout_style" transfer-ownership="none"> <doc xml:space="preserve">the new layout style</doc> <type name="ButtonBoxStyle" c:type="GtkButtonBoxStyle"/> </parameter> </parameters> </method> <property name="layout-style" writable="1" transfer-ownership="none"> <type name="ButtonBoxStyle"/> </property> <field name="box"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="ButtonBoxPrivate" c:type="GtkButtonBoxPrivate*"/> </field> </class> <record name="ButtonBoxClass" c:type="GtkButtonBoxClass" glib:is-gtype-struct-for="ButtonBox"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ButtonBoxPrivate" c:type="GtkButtonBoxPrivate" disguised="1"> </record> <enumeration name="ButtonBoxStyle" glib:type-name="GtkButtonBoxStyle" glib:get-type="gtk_button_box_style_get_type" c:type="GtkButtonBoxStyle"> <doc xml:space="preserve">Used to dictate the style that a #GtkButtonBox uses to layout the buttons it contains.</doc> <member name="spread" value="1" c:identifier="GTK_BUTTONBOX_SPREAD" glib:nick="spread"> <doc xml:space="preserve">Buttons are evenly spread across the box.</doc> </member> <member name="edge" value="2" c:identifier="GTK_BUTTONBOX_EDGE" glib:nick="edge"> <doc xml:space="preserve">Buttons are placed at the edges of the box.</doc> </member> <member name="start" value="3" c:identifier="GTK_BUTTONBOX_START" glib:nick="start"> <doc xml:space="preserve">Buttons are grouped towards the start of the box, (on the left for a HBox, or the top for a VBox).</doc> </member> <member name="end" value="4" c:identifier="GTK_BUTTONBOX_END" glib:nick="end"> <doc xml:space="preserve">Buttons are grouped towards the end of the box, (on the right for a HBox, or the bottom for a VBox).</doc> </member> <member name="center" value="5" c:identifier="GTK_BUTTONBOX_CENTER" glib:nick="center"> <doc xml:space="preserve">Buttons are centered in the box. Since 2.12.</doc> </member> <member name="expand" value="6" c:identifier="GTK_BUTTONBOX_EXPAND" glib:nick="expand"> <doc xml:space="preserve">Buttons expand to fill the box. This entails giving buttons a "linked" appearance, making button sizes homogeneous, and setting spacing to 0 (same as calling gtk_box_set_homogeneous() and gtk_box_set_spacing() manually). Since 3.12.</doc> </member> </enumeration> <record name="ButtonClass" c:type="GtkButtonClass" glib:is-gtype-struct-for="Button"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="pressed"> <callback name="pressed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </parameter> </parameters> </callback> </field> <field name="released"> <callback name="released"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </parameter> </parameters> </callback> </field> <field name="clicked"> <callback name="clicked"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </parameter> </parameters> </callback> </field> <field name="enter"> <callback name="enter"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </parameter> </parameters> </callback> </field> <field name="leave"> <callback name="leave"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The #GtkButton you want to send the signal to.</doc> <type name="Button" c:type="GtkButton*"/> </parameter> </parameters> </callback> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <type name="Button" c:type="GtkButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ButtonPrivate" c:type="GtkButtonPrivate" disguised="1"> </record> <enumeration name="ButtonRole" glib:type-name="GtkButtonRole" glib:get-type="gtk_button_role_get_type" c:type="GtkButtonRole"> <doc xml:space="preserve">The role specifies the desired appearance of a #GtkModelButton.</doc> <member name="normal" value="0" c:identifier="GTK_BUTTON_ROLE_NORMAL" glib:nick="normal"> <doc xml:space="preserve">A plain button</doc> </member> <member name="check" value="1" c:identifier="GTK_BUTTON_ROLE_CHECK" glib:nick="check"> <doc xml:space="preserve">A check button</doc> </member> <member name="radio" value="2" c:identifier="GTK_BUTTON_ROLE_RADIO" glib:nick="radio"> <doc xml:space="preserve">A radio button</doc> </member> </enumeration> <enumeration name="ButtonsType" glib:type-name="GtkButtonsType" glib:get-type="gtk_buttons_type_get_type" c:type="GtkButtonsType"> <doc xml:space="preserve">Prebuilt sets of buttons for the dialog. If none of these choices are appropriate, simply use %GTK_BUTTONS_NONE then call gtk_dialog_add_buttons(). > Please note that %GTK_BUTTONS_OK, %GTK_BUTTONS_YES_NO > and %GTK_BUTTONS_OK_CANCEL are discouraged by the > [GNOME Human Interface Guidelines](http://library.gnome.org/devel/hig-book/stable/).</doc> <member name="none" value="0" c:identifier="GTK_BUTTONS_NONE" glib:nick="none"> <doc xml:space="preserve">no buttons at all</doc> </member> <member name="ok" value="1" c:identifier="GTK_BUTTONS_OK" glib:nick="ok"> <doc xml:space="preserve">an OK button</doc> </member> <member name="close" value="2" c:identifier="GTK_BUTTONS_CLOSE" glib:nick="close"> <doc xml:space="preserve">a Close button</doc> </member> <member name="cancel" value="3" c:identifier="GTK_BUTTONS_CANCEL" glib:nick="cancel"> <doc xml:space="preserve">a Cancel button</doc> </member> <member name="yes_no" value="4" c:identifier="GTK_BUTTONS_YES_NO" glib:nick="yes-no"> <doc xml:space="preserve">Yes and No buttons</doc> </member> <member name="ok_cancel" value="5" c:identifier="GTK_BUTTONS_OK_CANCEL" glib:nick="ok-cancel"> <doc xml:space="preserve">OK and Cancel buttons</doc> </member> </enumeration> <class name="Calendar" c:symbol-prefix="calendar" c:type="GtkCalendar" parent="Widget" glib:type-name="GtkCalendar" glib:get-type="gtk_calendar_get_type" glib:type-struct="CalendarClass"> <doc xml:space="preserve">#GtkCalendar is a widget that displays a Gregorian calendar, one month at a time. It can be created with gtk_calendar_new(). The month and year currently displayed can be altered with gtk_calendar_select_month(). The exact day can be selected from the displayed month using gtk_calendar_select_day(). To place a visual marker on a particular day, use gtk_calendar_mark_day() and to remove the marker, gtk_calendar_unmark_day(). Alternative, all marks can be cleared with gtk_calendar_clear_marks(). The way in which the calendar itself is displayed can be altered using gtk_calendar_set_display_options(). The selected date can be retrieved from a #GtkCalendar using gtk_calendar_get_date(). Users should be aware that, although the Gregorian calendar is the legal calendar in most countries, it was adopted progressively between 1582 and 1929. Display before these dates is likely to be historically incorrect.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_calendar_new"> <doc xml:space="preserve">Creates a new calendar, with the current date being selected.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly #GtkCalendar widget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="day_selected"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="day_selected_double_click"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="month_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="next_month"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="next_year"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="prev_month"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="prev_year"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </virtual-method> <method name="clear_marks" c:identifier="gtk_calendar_clear_marks"> <doc xml:space="preserve">Remove all visual markers.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </method> <method name="get_date" c:identifier="gtk_calendar_get_date"> <doc xml:space="preserve">Obtains the selected date from a #GtkCalendar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="year" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the year as a decimal number (e.g. 2011), or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="month" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the month number (between 0 and 11), or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="day" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the day number (between 1 and 31), or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> <method name="get_day_is_marked" c:identifier="gtk_calendar_get_day_is_marked" version="3.0"> <doc xml:space="preserve">Returns if the @day of the @calendar is already marked.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the day is marked.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="day" transfer-ownership="none"> <doc xml:space="preserve">the day number between 1 and 31.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="get_detail_height_rows" c:identifier="gtk_calendar_get_detail_height_rows" version="2.14"> <doc xml:space="preserve">Queries the height of detail cells, in rows. See #GtkCalendar:detail-width-chars.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The height of detail cells, in rows.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar.</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </method> <method name="get_detail_width_chars" c:identifier="gtk_calendar_get_detail_width_chars" version="2.14"> <doc xml:space="preserve">Queries the width of detail cells, in characters. See #GtkCalendar:detail-width-chars.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The width of detail cells, in characters.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar.</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </method> <method name="get_display_options" c:identifier="gtk_calendar_get_display_options" version="2.4"> <doc xml:space="preserve">Returns the current display options of @calendar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the display options.</doc> <type name="CalendarDisplayOptions" c:type="GtkCalendarDisplayOptions"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> </parameters> </method> <method name="mark_day" c:identifier="gtk_calendar_mark_day"> <doc xml:space="preserve">Places a visual marker on a particular day.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="day" transfer-ownership="none"> <doc xml:space="preserve">the day number to mark between 1 and 31.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="select_day" c:identifier="gtk_calendar_select_day"> <doc xml:space="preserve">Selects a day from the current month.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar.</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="day" transfer-ownership="none"> <doc xml:space="preserve">the day number between 1 and 31, or 0 to unselect the currently selected day.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="select_month" c:identifier="gtk_calendar_select_month"> <doc xml:space="preserve">Shifts the calendar to a different month.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="month" transfer-ownership="none"> <doc xml:space="preserve">a month number between 0 and 11.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="year" transfer-ownership="none"> <doc xml:space="preserve">the year the month is in.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_detail_func" c:identifier="gtk_calendar_set_detail_func" version="2.14"> <doc xml:space="preserve">Installs a function which provides Pango markup with detail information for each day. Examples for such details are holidays or appointments. That information is shown below each day when #GtkCalendar:show-details is set. A tooltip containing with full detail information is provided, if the entire text should not fit into the details area, or if #GtkCalendar:show-details is not set. The size of the details area can be restricted by setting the #GtkCalendar:detail-width-chars and #GtkCalendar:detail-height-rows properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar.</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">a function providing details for each day.</doc> <type name="CalendarDetailFunc" c:type="GtkCalendarDetailFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to @func invokations.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">a function for releasing @data.</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_detail_height_rows" c:identifier="gtk_calendar_set_detail_height_rows" version="2.14"> <doc xml:space="preserve">Updates the height of detail cells. See #GtkCalendar:detail-height-rows.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar.</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="rows" transfer-ownership="none"> <doc xml:space="preserve">detail height in rows.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_detail_width_chars" c:identifier="gtk_calendar_set_detail_width_chars" version="2.14"> <doc xml:space="preserve">Updates the width of detail cells. See #GtkCalendar:detail-width-chars.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar.</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="chars" transfer-ownership="none"> <doc xml:space="preserve">detail width in characters.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_display_options" c:identifier="gtk_calendar_set_display_options" version="2.4"> <doc xml:space="preserve">Sets display options (whether to display the heading and the month headings).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the display options to set</doc> <type name="CalendarDisplayOptions" c:type="GtkCalendarDisplayOptions"/> </parameter> </parameters> </method> <method name="unmark_day" c:identifier="gtk_calendar_unmark_day"> <doc xml:space="preserve">Removes the visual marker from a particular day.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar.</doc> <type name="Calendar" c:type="GtkCalendar*"/> </instance-parameter> <parameter name="day" transfer-ownership="none"> <doc xml:space="preserve">the day number to unmark between 1 and 31.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <property name="day" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The selected day (as a number between 1 and 31, or 0 to unselect the currently selected day). This property gets initially set to the current day.</doc> <type name="gint" c:type="gint"/> </property> <property name="detail-height-rows" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Height of a detail cell, in rows. A value of 0 allows any width. See gtk_calendar_set_detail_func().</doc> <type name="gint" c:type="gint"/> </property> <property name="detail-width-chars" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Width of a detail cell, in characters. A value of 0 allows any width. See gtk_calendar_set_detail_func().</doc> <type name="gint" c:type="gint"/> </property> <property name="month" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The selected month (as a number between 0 and 11). This property gets initially set to the current month.</doc> <type name="gint" c:type="gint"/> </property> <property name="no-month-change" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether the selected month can be changed.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-day-names" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether day names are displayed.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-details" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether details are shown directly in the widget, or if they are available only as tooltip. When this property is set days with details are marked.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-heading" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether a heading is displayed.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-week-numbers" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether week numbers are displayed.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="year" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The selected year. This property gets initially set to the current year.</doc> <type name="gint" c:type="gint"/> </property> <field name="widget"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv"> <type name="CalendarPrivate" c:type="GtkCalendarPrivate*"/> </field> <glib:signal name="day-selected" when="first"> <doc xml:space="preserve">Emitted when the user selects a day.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="day-selected-double-click" when="first"> <doc xml:space="preserve">Emitted when the user double-clicks a day.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="month-changed" when="first"> <doc xml:space="preserve">Emitted when the user clicks a button to change the selected month on a calendar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="next-month" when="first"> <doc xml:space="preserve">Emitted when the user switched to the next month.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="next-year" when="first"> <doc xml:space="preserve">Emitted when user switched to the next year.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="prev-month" when="first"> <doc xml:space="preserve">Emitted when the user switched to the previous month.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="prev-year" when="first"> <doc xml:space="preserve">Emitted when user switched to the previous year.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="CalendarClass" c:type="GtkCalendarClass" glib:is-gtype-struct-for="Calendar"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="month_changed"> <callback name="month_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </parameter> </parameters> </callback> </field> <field name="day_selected"> <callback name="day_selected"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </parameter> </parameters> </callback> </field> <field name="day_selected_double_click"> <callback name="day_selected_double_click"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </parameter> </parameters> </callback> </field> <field name="prev_month"> <callback name="prev_month"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </parameter> </parameters> </callback> </field> <field name="next_month"> <callback name="next_month"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </parameter> </parameters> </callback> </field> <field name="prev_year"> <callback name="prev_year"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </parameter> </parameters> </callback> </field> <field name="next_year"> <callback name="next_year"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="calendar" transfer-ownership="none"> <type name="Calendar" c:type="GtkCalendar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="CalendarDetailFunc" c:type="GtkCalendarDetailFunc" version="2.14"> <doc xml:space="preserve">This kind of functions provide Pango markup with detail information for the specified day. Examples for such details are holidays or appointments. The function returns %NULL when no information is available.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">Newly allocated string with Pango markup with details for the specified day or %NULL.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="calendar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCalendar.</doc> <type name="Calendar" c:type="GtkCalendar*"/> </parameter> <parameter name="year" transfer-ownership="none"> <doc xml:space="preserve">the year for which details are needed.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="month" transfer-ownership="none"> <doc xml:space="preserve">the month for which details are needed.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="day" transfer-ownership="none"> <doc xml:space="preserve">the day of @month for which details are needed.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">the data passed with gtk_calendar_set_detail_func().</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <bitfield name="CalendarDisplayOptions" glib:type-name="GtkCalendarDisplayOptions" glib:get-type="gtk_calendar_display_options_get_type" c:type="GtkCalendarDisplayOptions"> <doc xml:space="preserve">These options can be used to influence the display and behaviour of a #GtkCalendar.</doc> <member name="show_heading" value="1" c:identifier="GTK_CALENDAR_SHOW_HEADING" glib:nick="show-heading"> <doc xml:space="preserve">Specifies that the month and year should be displayed.</doc> </member> <member name="show_day_names" value="2" c:identifier="GTK_CALENDAR_SHOW_DAY_NAMES" glib:nick="show-day-names"> <doc xml:space="preserve">Specifies that three letter day descriptions should be present.</doc> </member> <member name="no_month_change" value="4" c:identifier="GTK_CALENDAR_NO_MONTH_CHANGE" glib:nick="no-month-change"> <doc xml:space="preserve">Prevents the user from switching months with the calendar.</doc> </member> <member name="show_week_numbers" value="8" c:identifier="GTK_CALENDAR_SHOW_WEEK_NUMBERS" glib:nick="show-week-numbers"> <doc xml:space="preserve">Displays each week numbers of the current year, down the left side of the calendar.</doc> </member> <member name="show_details" value="32" c:identifier="GTK_CALENDAR_SHOW_DETAILS" glib:nick="show-details"> <doc xml:space="preserve">Just show an indicator, not the full details text when details are provided. See gtk_calendar_set_detail_func().</doc> </member> </bitfield> <record name="CalendarPrivate" c:type="GtkCalendarPrivate" disguised="1"> </record> <callback name="Callback" c:type="GtkCallback"> <doc xml:space="preserve">The type of the callback functions used for e.g. iterating over the children of a container, see gtk_container_foreach().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to operate on</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user-supplied data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="CellAccessible" c:symbol-prefix="cell_accessible" c:type="GtkCellAccessible" parent="Accessible" glib:type-name="GtkCellAccessible" glib:get-type="gtk_cell_accessible_get_type" glib:type-struct="CellAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <virtual-method name="update_cache"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </instance-parameter> <parameter name="emit_signal" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <field name="parent"> <type name="Accessible" c:type="GtkAccessible"/> </field> <field name="priv"> <type name="CellAccessiblePrivate" c:type="GtkCellAccessiblePrivate*"/> </field> </class> <record name="CellAccessibleClass" c:type="GtkCellAccessibleClass" glib:is-gtype-struct-for="CellAccessible"> <field name="parent_class"> <type name="AccessibleClass" c:type="GtkAccessibleClass"/> </field> <field name="update_cache"> <callback name="update_cache"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="emit_signal" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> </record> <interface name="CellAccessibleParent" c:symbol-prefix="cell_accessible_parent" c:type="GtkCellAccessibleParent" glib:type-name="GtkCellAccessibleParent" glib:get-type="gtk_cell_accessible_parent_get_type" glib:type-struct="CellAccessibleParentIface"> <virtual-method name="activate" invoker="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </virtual-method> <virtual-method name="edit" invoker="edit"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </virtual-method> <virtual-method name="expand_collapse" invoker="expand_collapse"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_cell_area" invoker="get_cell_area"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="cell_rect" transfer-ownership="none"> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_cell_extents" invoker="get_cell_extents"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="coord_type" transfer-ownership="none"> <type name="Atk.CoordType" c:type="AtkCoordType"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_child_index" invoker="get_child_index"> <return-value transfer-ownership="none"> <type name="gint" c:type="int"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_renderer_state" invoker="get_renderer_state"> <return-value transfer-ownership="none"> <type name="CellRendererState" c:type="GtkCellRendererState"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </virtual-method> <virtual-method name="grab_focus" invoker="grab_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </virtual-method> <virtual-method name="update_relationset" invoker="update_relationset"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="relationset" transfer-ownership="none"> <type name="Atk.RelationSet" c:type="AtkRelationSet*"/> </parameter> </parameters> </virtual-method> <method name="activate" c:identifier="gtk_cell_accessible_parent_activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </method> <method name="edit" c:identifier="gtk_cell_accessible_parent_edit"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </method> <method name="expand_collapse" c:identifier="gtk_cell_accessible_parent_expand_collapse"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </method> <method name="get_cell_area" c:identifier="gtk_cell_accessible_parent_get_cell_area"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="cell_rect" transfer-ownership="none"> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_cell_extents" c:identifier="gtk_cell_accessible_parent_get_cell_extents"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="coord_type" transfer-ownership="none"> <type name="Atk.CoordType" c:type="AtkCoordType"/> </parameter> </parameters> </method> <method name="get_child_index" c:identifier="gtk_cell_accessible_parent_get_child_index"> <return-value transfer-ownership="none"> <type name="gint" c:type="int"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </method> <method name="get_renderer_state" c:identifier="gtk_cell_accessible_parent_get_renderer_state"> <return-value transfer-ownership="none"> <type name="CellRendererState" c:type="GtkCellRendererState"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </method> <method name="grab_focus" c:identifier="gtk_cell_accessible_parent_grab_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </method> <method name="update_relationset" c:identifier="gtk_cell_accessible_parent_update_relationset"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="relationset" transfer-ownership="none"> <type name="Atk.RelationSet" c:type="AtkRelationSet*"/> </parameter> </parameters> </method> </interface> <record name="CellAccessibleParentIface" c:type="GtkCellAccessibleParentIface" glib:is-gtype-struct-for="CellAccessibleParent"> <field name="parent"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="get_cell_extents"> <callback name="get_cell_extents"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="coord_type" transfer-ownership="none"> <type name="Atk.CoordType" c:type="AtkCoordType"/> </parameter> </parameters> </callback> </field> <field name="get_cell_area"> <callback name="get_cell_area"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="cell_rect" transfer-ownership="none"> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </callback> </field> <field name="grab_focus"> <callback name="grab_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </callback> </field> <field name="get_child_index"> <callback name="get_child_index"> <return-value transfer-ownership="none"> <type name="gint" c:type="int"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </callback> </field> <field name="get_renderer_state"> <callback name="get_renderer_state"> <return-value transfer-ownership="none"> <type name="CellRendererState" c:type="GtkCellRendererState"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </callback> </field> <field name="expand_collapse"> <callback name="expand_collapse"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </callback> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </callback> </field> <field name="edit"> <callback name="edit"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </callback> </field> <field name="update_relationset"> <callback name="update_relationset"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none"> <type name="CellAccessibleParent" c:type="GtkCellAccessibleParent*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> <parameter name="relationset" transfer-ownership="none"> <type name="Atk.RelationSet" c:type="AtkRelationSet*"/> </parameter> </parameters> </callback> </field> </record> <record name="CellAccessiblePrivate" c:type="GtkCellAccessiblePrivate" disguised="1"> </record> <callback name="CellAllocCallback" c:type="GtkCellAllocCallback"> <doc xml:space="preserve">The type of the callback functions used for iterating over the cell renderers and their allocated areas inside a #GtkCellArea, see gtk_cell_area_foreach_alloc().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop iterating over cells.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the cell renderer to operate on</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the area allocated to @renderer inside the rectangle provided to gtk_cell_area_foreach_alloc().</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_background" transfer-ownership="none"> <doc xml:space="preserve">the background area for @renderer inside the background area provided to gtk_cell_area_foreach_alloc().</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> <doc xml:space="preserve">user-supplied data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="CellArea" c:symbol-prefix="cell_area" c:type="GtkCellArea" parent="GObject.InitiallyUnowned" abstract="1" glib:type-name="GtkCellArea" glib:get-type="gtk_cell_area_get_type" glib:type-struct="CellAreaClass"> <doc xml:space="preserve">The #GtkCellArea is an abstract class for #GtkCellLayout widgets (also referred to as "layouting widgets") to interface with an arbitrary number of #GtkCellRenderers and interact with the user for a given #GtkTreeModel row. The cell area handles events, focus navigation, drawing and size requests and allocations for a given row of data. Usually users dont have to interact with the #GtkCellArea directly unless they are implementing a cell-layouting widget themselves. # Requesting area sizes As outlined in [GtkWidgetâs geometry management section][geometry-management], GTK+ uses a height-for-width geometry management system to compute the sizes of widgets and user interfaces. #GtkCellArea uses the same semantics to calculate the size of an area for an arbitrary number of #GtkTreeModel rows. When requesting the size of a cell area one needs to calculate the size for a handful of rows, and this will be done differently by different layouting widgets. For instance a #GtkTreeViewColumn always lines up the areas from top to bottom while a #GtkIconView on the other hand might enforce that all areas received the same width and wrap the areas around, requesting height for more cell areas when allocated less width. Itâs also important for areas to maintain some cell alignments with areas rendered for adjacent rows (cells can appear âcolumnizedâ inside an area even when the size of cells are different in each row). For this reason the #GtkCellArea uses a #GtkCellAreaContext object to store the alignments and sizes along the way (as well as the overall largest minimum and natural size for all the rows which have been calculated with the said context). The #GtkCellAreaContext is an opaque object specific to the #GtkCellArea which created it (see gtk_cell_area_create_context()). The owning cell-layouting widget can create as many contexts as it wishes to calculate sizes of rows which should receive the same size in at least one orientation (horizontally or vertically), However, itâs important that the same #GtkCellAreaContext which was used to request the sizes for a given #GtkTreeModel row be used when rendering or processing events for that row. In order to request the width of all the rows at the root level of a #GtkTreeModel one would do the following: |[<!-- language="C" --> GtkTreeIter iter; gint minimum_width; gint natural_width; valid = gtk_tree_model_get_iter_first (model, &iter); while (valid) { gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE); gtk_cell_area_get_preferred_width (area, context, widget, NULL, NULL); valid = gtk_tree_model_iter_next (model, &iter); } gtk_cell_area_context_get_preferred_width (context, &minimum_width, &natural_width); ]| Note that in this example itâs not important to observe the returned minimum and natural width of the area for each row unless the cell-layouting object is actually interested in the widths of individual rows. The overall width is however stored in the accompanying #GtkCellAreaContext object and can be consulted at any time. This can be useful since #GtkCellLayout widgets usually have to support requesting and rendering rows in treemodels with an exceedingly large amount of rows. The #GtkCellLayout widget in that case would calculate the required width of the rows in an idle or timeout source (see g_timeout_add()) and when the widget is requested its actual width in #GtkWidgetClass.get_preferred_width() it can simply consult the width accumulated so far in the #GtkCellAreaContext object. A simple example where rows are rendered from top to bottom and take up the full width of the layouting widget would look like: |[<!-- language="C" --> static void foo_get_preferred_width (GtkWidget *widget, gint *minimum_size, gint *natural_size) { Foo *foo = FOO (widget); FooPrivate *priv = foo->priv; foo_ensure_at_least_one_handfull_of_rows_have_been_requested (foo); gtk_cell_area_context_get_preferred_width (priv->context, minimum_size, natural_size); } ]| In the above example the Foo widget has to make sure that some row sizes have been calculated (the amount of rows that Foo judged was appropriate to request space for in a single timeout iteration) before simply returning the amount of space required by the area via the #GtkCellAreaContext. Requesting the height for width (or width for height) of an area is a similar task except in this case the #GtkCellAreaContext does not store the data (actually, it does not know how much space the layouting widget plans to allocate it for every row. Itâs up to the layouting widget to render each row of data with the appropriate height and width which was requested by the #GtkCellArea). In order to request the height for width of all the rows at the root level of a #GtkTreeModel one would do the following: |[<!-- language="C" --> GtkTreeIter iter; gint minimum_height; gint natural_height; gint full_minimum_height = 0; gint full_natural_height = 0; valid = gtk_tree_model_get_iter_first (model, &iter); while (valid) { gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE); gtk_cell_area_get_preferred_height_for_width (area, context, widget, width, &minimum_height, &natural_height); if (width_is_for_allocation) cache_row_height (&iter, minimum_height, natural_height); full_minimum_height += minimum_height; full_natural_height += natural_height; valid = gtk_tree_model_iter_next (model, &iter); } ]| Note that in the above example we would need to cache the heights returned for each row so that we would know what sizes to render the areas for each row. However we would only want to really cache the heights if the request is intended for the layouting widgets real allocation. In some cases the layouting widget is requested the height for an arbitrary for_width, this is a special case for layouting widgets who need to request size for tens of thousands of rows. For this case itâs only important that the layouting widget calculate one reasonably sized chunk of rows and return that height synchronously. The reasoning here is that any layouting widget is at least capable of synchronously calculating enough height to fill the screen height (or scrolled window height) in response to a single call to #GtkWidgetClass.get_preferred_height_for_width(). Returning a perfect height for width that is larger than the screen area is inconsequential since after the layouting receives an allocation from a scrolled window it simply continues to drive the scrollbar values while more and more height is required for the row heights that are calculated in the background. # Rendering Areas Once area sizes have been aquired at least for the rows in the visible area of the layouting widget they can be rendered at #GtkWidgetClass.draw() time. A crude example of how to render all the rows at the root level runs as follows: |[<!-- language="C" --> GtkAllocation allocation; GdkRectangle cell_area = { 0, }; GtkTreeIter iter; gint minimum_width; gint natural_width; gtk_widget_get_allocation (widget, &allocation); cell_area.width = allocation.width; valid = gtk_tree_model_get_iter_first (model, &iter); while (valid) { cell_area.height = get_cached_height_for_row (&iter); gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE); gtk_cell_area_render (area, context, widget, cr, &cell_area, &cell_area, state_flags, FALSE); cell_area.y += cell_area.height; valid = gtk_tree_model_iter_next (model, &iter); } ]| Note that the cached height in this example really depends on how the layouting widget works. The layouting widget might decide to give every row its minimum or natural height or, if the model content is expected to fit inside the layouting widget without scrolling, it would make sense to calculate the allocation for each row at #GtkWidget::size-allocate time using gtk_distribute_natural_allocation(). # Handling Events and Driving Keyboard Focus Passing events to the area is as simple as handling events on any normal widget and then passing them to the gtk_cell_area_event() API as they come in. Usually #GtkCellArea is only interested in button events, however some customized derived areas can be implemented who are interested in handling other events. Handling an event can trigger the #GtkCellArea::focus-changed signal to fire; as well as #GtkCellArea::add-editable in the case that an editable cell was clicked and needs to start editing. You can call gtk_cell_area_stop_editing() at any time to cancel any cell editing that is currently in progress. The #GtkCellArea drives keyboard focus from cell to cell in a way similar to #GtkWidget. For layouting widgets that support giving focus to cells itâs important to remember to pass %GTK_CELL_RENDERER_FOCUSED to the area functions for the row that has focus and to tell the area to paint the focus at render time. Layouting widgets that accept focus on cells should implement the #GtkWidgetClass.focus() virtual method. The layouting widget is always responsible for knowing where #GtkTreeModel rows are rendered inside the widget, so at #GtkWidgetClass.focus() time the layouting widget should use the #GtkCellArea methods to navigate focus inside the area and then observe the GtkDirectionType to pass the focus to adjacent rows and areas. A basic example of how the #GtkWidgetClass.focus() virtual method should be implemented: |[<!-- language="C" --> static gboolean foo_focus (GtkWidget *widget, GtkDirectionType direction) { Foo *foo = FOO (widget); FooPrivate *priv = foo->priv; gint focus_row; gboolean have_focus = FALSE; focus_row = priv->focus_row; if (!gtk_widget_has_focus (widget)) gtk_widget_grab_focus (widget); valid = gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, priv->focus_row); while (valid) { gtk_cell_area_apply_attributes (priv->area, priv->model, &iter, FALSE, FALSE); if (gtk_cell_area_focus (priv->area, direction)) { priv->focus_row = focus_row; have_focus = TRUE; break; } else { if (direction == GTK_DIR_RIGHT || direction == GTK_DIR_LEFT) break; else if (direction == GTK_DIR_UP || direction == GTK_DIR_TAB_BACKWARD) { if (focus_row == 0) break; else { focus_row--; valid = gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, focus_row); } } else { if (focus_row == last_row) break; else { focus_row++; valid = gtk_tree_model_iter_next (priv->model, &iter); } } } } return have_focus; } ]| Note that the layouting widget is responsible for matching the GtkDirectionType values to the way it lays out its cells. # Cell Properties The #GtkCellArea introduces cell properties for #GtkCellRenderers in very much the same way that #GtkContainer introduces [child properties][child-properties] for #GtkWidgets. This provides some general interfaces for defining the relationship cell areas have with their cells. For instance in a #GtkCellAreaBox a cell might âexpandâ and receive extra space when the area is allocated more than its full natural request, or a cell might be configured to âalignâ with adjacent rows which were requested and rendered with the same #GtkCellAreaContext. Use gtk_cell_area_class_install_cell_property() to install cell properties for a cell area class and gtk_cell_area_class_find_cell_property() or gtk_cell_area_class_list_cell_properties() to get information about existing cell properties. To set the value of a cell property, use gtk_cell_area_cell_set_property(), gtk_cell_area_cell_set() or gtk_cell_area_cell_set_valist(). To obtain the value of a cell property, use gtk_cell_area_cell_get_property(), gtk_cell_area_cell_get() or gtk_cell_area_cell_get_valist().</doc> <implements name="Buildable"/> <implements name="CellLayout"/> <virtual-method name="activate" invoker="activate" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether @area was successfully activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext in context with the current row data</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering on</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the size and location of @area relative to @widgetâs allocation</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState flags for @area for this row of data.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="edit_only" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE then only cell renderers that are %GTK_CELL_RENDERER_MODE_EDITABLE will be activated.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="add" invoker="add" version="3.0"> <doc xml:space="preserve">Adds @renderer to @area with the default child cell properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to add to @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </virtual-method> <virtual-method name="apply_attributes" invoker="apply_attributes" version="3.0"> <doc xml:space="preserve">Applies any connected attributes to the renderers in @area by pulling the values from @tree_model.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel to pull values from</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter in @tree_model to apply values for</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="is_expander" transfer-ownership="none"> <doc xml:space="preserve">whether @iter has children</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="is_expanded" transfer-ownership="none"> <doc xml:space="preserve">whether @iter is expanded in the view and children are visible</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="copy_context" invoker="copy_context" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkCellAreaContext copy of @context.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to copy</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="create_context" invoker="create_context" version="3.0"> <doc xml:space="preserve">Creates a #GtkCellAreaContext to be used with @area for all purposes. #GtkCellAreaContext 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 #GtkCellAreaContext which was used to request the size of those rows of data).</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkCellAreaContext which can be used with @area.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="event" invoker="event" version="3.0"> <doc xml:space="preserve">Delegates event handling to a #GtkCellArea.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event was handled by @area.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEvent to handle</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState for @area in this row.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </virtual-method> <virtual-method name="focus" invoker="focus" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if focus remains inside @area as a result of this call.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the #GtkDirectionType</doc> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="foreach" invoker="foreach" version="3.0"> <doc xml:space="preserve">Calls @callback for every #GtkCellRenderer in @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">the #GtkCellCallback to call</doc> <type name="CellCallback" c:type="GtkCellCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user provided data pointer</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </virtual-method> <virtual-method name="foreach_alloc" invoker="foreach_alloc" version="3.0"> <doc xml:space="preserve">Calls @callback for every #GtkCellRenderer in @area with the allocated rectangle inside @cell_area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates and size for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates of the background area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="5"> <doc xml:space="preserve">the #GtkCellAllocCallback to call</doc> <type name="CellAllocCallback" c:type="GtkCellAllocCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user provided data pointer</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_cell_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="property_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="GValue*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_height" invoker="get_preferred_height" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to perform this request with</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_height_for_width" invoker="get_preferred_height_for_width" version="3.0"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext which has already been requested for widths.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width for which to check the height of this area</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_width" invoker="get_preferred_width" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to perform this request with</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_width_for_height" invoker="get_preferred_width_for_height" version="3.0"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext which has already been requested for widths.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height for which to check the width of this area</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_request_mode" invoker="get_request_mode" version="3.0"> <doc xml:space="preserve">Gets whether the area prefers a height-for-width layout or a width-for-height layout.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by @area.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="is_activatable" invoker="is_activatable" version="3.0"> <doc xml:space="preserve">Returns whether the area can do anything when activated, after applying new attributes to @area.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @area can do anything when activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="remove" invoker="remove" version="3.0"> <doc xml:space="preserve">Removes @renderer from @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to remove from @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </virtual-method> <virtual-method name="render" invoker="render" version="3.0"> <doc xml:space="preserve">Renders @areaâs cells according to @areaâs layout onto @widget at the given coordinates.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">the #cairo_t to render with</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @areaâs background</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState for @area in this row.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="paint_focus" transfer-ownership="none"> <doc xml:space="preserve">whether @area should paint focus on focused cells for focused rows or not.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_cell_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="property_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="const GValue*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </virtual-method> <method name="activate" c:identifier="gtk_cell_area_activate" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether @area was successfully activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext in context with the current row data</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering on</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the size and location of @area relative to @widgetâs allocation</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState flags for @area for this row of data.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="edit_only" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE then only cell renderers that are %GTK_CELL_RENDERER_MODE_EDITABLE will be activated.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="activate_cell" c:identifier="gtk_cell_area_activate_cell" version="3.0"> <doc xml:space="preserve">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->activate() implementation.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether cell activation was successful</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering onto</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer in @area to activate</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEvent for which cell activation should occur</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the #GdkRectangle in @widget relative coordinates of @renderer for the current row.</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState for @renderer</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </method> <method name="add" c:identifier="gtk_cell_area_add" version="3.0"> <doc xml:space="preserve">Adds @renderer to @area with the default child cell properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to add to @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="add_focus_sibling" c:identifier="gtk_cell_area_add_focus_sibling" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer expected to have focus</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="sibling" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to add to @rendererâs focus area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="add_with_properties" c:identifier="gtk_cell_area_add_with_properties" version="3.0" introspectable="0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer to be placed inside @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="first_prop_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first cell property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated list of property names and values, starting with @first_prop_name</doc> <varargs/> </parameter> </parameters> </method> <method name="apply_attributes" c:identifier="gtk_cell_area_apply_attributes" version="3.0"> <doc xml:space="preserve">Applies any connected attributes to the renderers in @area by pulling the values from @tree_model.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel to pull values from</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter in @tree_model to apply values for</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="is_expander" transfer-ownership="none"> <doc xml:space="preserve">whether @iter has children</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="is_expanded" transfer-ownership="none"> <doc xml:space="preserve">whether @iter is expanded in the view and children are visible</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="attribute_connect" c:identifier="gtk_cell_area_attribute_connect" version="3.0"> <doc xml:space="preserve">Connects an @attribute to apply values from @column for the #GtkTreeModel in use.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to connect an attribute for</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="attribute" transfer-ownership="none"> <doc xml:space="preserve">the attribute name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel column to fetch attribute values from</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="attribute_disconnect" c:identifier="gtk_cell_area_attribute_disconnect" version="3.0"> <doc xml:space="preserve">Disconnects @attribute for the @renderer in @area so that attribute will no longer be updated with values from the model.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to disconnect an attribute for</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="attribute" transfer-ownership="none"> <doc xml:space="preserve">the attribute name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="attribute_get_column" c:identifier="gtk_cell_area_attribute_get_column" version="3.14"> <doc xml:space="preserve">Returns the model column that an attribute has been mapped to, or -1 if the attribute is not mapped.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the model column, or -1</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="attribute" transfer-ownership="none"> <doc xml:space="preserve">an attribute on the renderer</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="cell_get" c:identifier="gtk_cell_area_cell_get" version="3.0" introspectable="0"> <doc xml:space="preserve">Gets the values of one or more cell properties for @renderer in @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer which is inside @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="first_prop_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first cell property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">return location for the first cell property, followed optionally by more name/return location pairs, followed by %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="cell_get_property" c:identifier="gtk_cell_area_cell_get_property" version="3.0"> <doc xml:space="preserve">Gets the value of a cell property for @renderer in @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer inside @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">a location to return the value</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="cell_get_valist" c:identifier="gtk_cell_area_cell_get_valist" version="3.0" introspectable="0"> <doc xml:space="preserve">Gets the values of one or more cell properties for @renderer in @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer inside @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="cell_set" c:identifier="gtk_cell_area_cell_set" version="3.0" introspectable="0"> <doc xml:space="preserve">Sets one or more cell properties for @cell in @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer which is a cell inside @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="first_prop_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first cell property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated list of property names and values, starting with @first_prop_name</doc> <varargs/> </parameter> </parameters> </method> <method name="cell_set_property" c:identifier="gtk_cell_area_cell_set_property" version="3.0"> <doc xml:space="preserve">Sets a cell property for @renderer in @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer inside @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the cell property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the value to set the cell property to</doc> <type name="GObject.Value" c:type="const GValue*"/> </parameter> </parameters> </method> <method name="cell_set_valist" c:identifier="gtk_cell_area_cell_set_valist" version="3.0" introspectable="0"> <doc xml:space="preserve">Sets one or more cell properties for @renderer in @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer which inside @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first cell property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated list of property names and values, starting with @first_prop_name</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="copy_context" c:identifier="gtk_cell_area_copy_context" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkCellAreaContext copy of @context.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to copy</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> </parameters> </method> <method name="create_context" c:identifier="gtk_cell_area_create_context" version="3.0"> <doc xml:space="preserve">Creates a #GtkCellAreaContext to be used with @area for all purposes. #GtkCellAreaContext 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 #GtkCellAreaContext which was used to request the size of those rows of data).</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkCellAreaContext which can be used with @area.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </method> <method name="event" c:identifier="gtk_cell_area_event" version="3.0"> <doc xml:space="preserve">Delegates event handling to a #GtkCellArea.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event was handled by @area.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEvent to handle</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState for @area in this row.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </method> <method name="focus" c:identifier="gtk_cell_area_focus" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if focus remains inside @area as a result of this call.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the #GtkDirectionType</doc> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </method> <method name="foreach" c:identifier="gtk_cell_area_foreach" version="3.0"> <doc xml:space="preserve">Calls @callback for every #GtkCellRenderer in @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">the #GtkCellCallback to call</doc> <type name="CellCallback" c:type="GtkCellCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user provided data pointer</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="foreach_alloc" c:identifier="gtk_cell_area_foreach_alloc" version="3.0"> <doc xml:space="preserve">Calls @callback for every #GtkCellRenderer in @area with the allocated rectangle inside @cell_area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates and size for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates of the background area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="5"> <doc xml:space="preserve">the #GtkCellAllocCallback to call</doc> <type name="CellAllocCallback" c:type="GtkCellAllocCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user provided data pointer</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="get_cell_allocation" c:identifier="gtk_cell_area_get_cell_allocation" version="3.0"> <doc xml:space="preserve">Derives the allocation of @renderer inside @area if @area were to be renderered in @cell_area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext used to hold sizes for @area.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering on</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to get the allocation for</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the whole allocated area for @area in @widget for this row</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="allocation" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">where to store the allocation for @renderer</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_cell_at_position" c:identifier="gtk_cell_area_get_cell_at_position" version="3.0"> <doc xml:space="preserve">Gets the #GtkCellRenderer at @x and @y coordinates inside @area and optionally returns the full cell allocation for it inside @cell_area.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer at @x and @y.</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext used to hold sizes for @area.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering on</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the whole allocated area for @area in @widget for this row</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="alloc_area" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">where to store the inner allocated area of the returned cell renderer, or %NULL.</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_current_path_string" c:identifier="gtk_cell_area_get_current_path_string" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current #GtkTreePath string for the current attributes applied to @area. This string belongs to the area and should not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </method> <method name="get_edit_widget" c:identifier="gtk_cell_area_get_edit_widget" version="3.0"> <doc xml:space="preserve">Gets the #GtkCellEditable widget currently used to edit the currently edited cell.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The currently active #GtkCellEditable widget</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </method> <method name="get_edited_cell" c:identifier="gtk_cell_area_get_edited_cell" version="3.0"> <doc xml:space="preserve">Gets the #GtkCellRenderer in @area that is currently being edited.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The currently edited #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </method> <method name="get_focus_cell" c:identifier="gtk_cell_area_get_focus_cell" version="3.0"> <doc xml:space="preserve">Retrieves the currently focused cell for @area</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the currently focused cell in @area.</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </method> <method name="get_focus_from_sibling" c:identifier="gtk_cell_area_get_focus_from_sibling" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #GtkCellRenderer for which @renderer is a sibling, or %NULL.</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="get_focus_siblings" c:identifier="gtk_cell_area_get_focus_siblings" version="3.0"> <doc xml:space="preserve">Gets the focus sibling cell renderers for @renderer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GList of #GtkCellRenderers. The returned list is internal and should not be freed.</doc> <type name="GLib.List" c:type="const GList*"> <type name="CellRenderer"/> </type> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer expected to have focus</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="get_preferred_height" c:identifier="gtk_cell_area_get_preferred_height" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to perform this request with</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_height_for_width" c:identifier="gtk_cell_area_get_preferred_height_for_width" version="3.0"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext which has already been requested for widths.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width for which to check the height of this area</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_width" c:identifier="gtk_cell_area_get_preferred_width" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to perform this request with</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_width_for_height" c:identifier="gtk_cell_area_get_preferred_width_for_height" version="3.0"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext which has already been requested for widths.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height for which to check the width of this area</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_request_mode" c:identifier="gtk_cell_area_get_request_mode" version="3.0"> <doc xml:space="preserve">Gets whether the area prefers a height-for-width layout or a width-for-height layout.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by @area.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </method> <method name="has_renderer" c:identifier="gtk_cell_area_has_renderer" version="3.0"> <doc xml:space="preserve">Checks if @area contains @renderer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @renderer is in the @area.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to check</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="inner_cell_area" c:identifier="gtk_cell_area_inner_cell_area" version="3.0"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering onto</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates where one of @areaâs cells is to be placed</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="inner_area" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the return location for the inner cell area</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="is_activatable" c:identifier="gtk_cell_area_is_activatable" version="3.0"> <doc xml:space="preserve">Returns whether the area can do anything when activated, after applying new attributes to @area.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @area can do anything when activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> </parameters> </method> <method name="is_focus_sibling" c:identifier="gtk_cell_area_is_focus_sibling" version="3.0"> <doc xml:space="preserve">Returns whether @sibling is one of @rendererâs focus siblings (see gtk_cell_area_add_focus_sibling()).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @sibling is a focus sibling of @renderer</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer expected to have focus</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="sibling" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to check against @rendererâs sibling list</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="remove" c:identifier="gtk_cell_area_remove" version="3.0"> <doc xml:space="preserve">Removes @renderer from @area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to remove from @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="remove_focus_sibling" c:identifier="gtk_cell_area_remove_focus_sibling" version="3.0"> <doc xml:space="preserve">Removes @sibling from @rendererâs focus sibling list (see gtk_cell_area_add_focus_sibling()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer expected to have focus</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="sibling" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to remove from @rendererâs focus area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="render" c:identifier="gtk_cell_area_render" version="3.0"> <doc xml:space="preserve">Renders @areaâs cells according to @areaâs layout onto @widget at the given coordinates.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">the #cairo_t to render with</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @areaâs background</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState for @area in this row.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="paint_focus" transfer-ownership="none"> <doc xml:space="preserve">whether @area should paint focus on focused cells for focused rows or not.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="request_renderer" c:identifier="gtk_cell_area_request_renderer" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to request size for</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the #GtkOrientation in which to request size</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering onto</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="for_size" transfer-ownership="none"> <doc xml:space="preserve">the allocation contextual size to request for, or -1 if the base request for the orientation is to be returned.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="set_focus_cell" c:identifier="gtk_cell_area_set_focus_cell" version="3.0"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to give focus to</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="stop_editing" c:identifier="gtk_cell_area_stop_editing" version="3.0"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </instance-parameter> <parameter name="canceled" transfer-ownership="none"> <doc xml:space="preserve">whether editing was canceled.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="edit-widget" version="3.0" transfer-ownership="none"> <doc xml:space="preserve">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().</doc> <type name="CellEditable"/> </property> <property name="edited-cell" version="3.0" transfer-ownership="none"> <doc xml:space="preserve">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().</doc> <type name="CellRenderer"/> </property> <property name="focus-cell" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The cell in the area that currently has focus</doc> <type name="CellRenderer"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> </field> <field name="priv" readable="0" private="1"> <type name="CellAreaPrivate" c:type="GtkCellAreaPrivate*"/> </field> <glib:signal name="add-editable" when="first" version="3.0"> <doc xml:space="preserve">Indicates that editing has started on @renderer and that @editable should be added to the owning cell-layouting widget at @cell_area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer that started the edited</doc> <type name="CellRenderer"/> </parameter> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellEditable widget to add</doc> <type name="CellEditable"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget relative #GdkRectangle coordinates where @editable should be added</doc> <type name="Gdk.Rectangle"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreePath string this edit was initiated for</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="apply-attributes" when="first" version="3.0"> <doc xml:space="preserve">This signal is emitted whenever applying attributes to @area from @model</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel to apply the attributes from</doc> <type name="TreeModel"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter indicating which row to apply the attributes of</doc> <type name="TreeIter"/> </parameter> <parameter name="is_expander" transfer-ownership="none"> <doc xml:space="preserve">whether the view shows children for this row</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="is_expanded" transfer-ownership="none"> <doc xml:space="preserve">whether the view is currently showing the children of this row</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="focus-changed" when="first" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer that has focus</doc> <type name="CellRenderer"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the current #GtkTreePath string set for @area</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="remove-editable" when="first" version="3.0"> <doc xml:space="preserve">Indicates that editing finished on @renderer and that @editable should be removed from the owning cell-layouting widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer that finished editeding</doc> <type name="CellRenderer"/> </parameter> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellEditable widget to remove</doc> <type name="CellEditable"/> </parameter> </parameters> </glib:signal> </class> <class name="CellAreaBox" c:symbol-prefix="cell_area_box" c:type="GtkCellAreaBox" parent="CellArea" glib:type-name="GtkCellAreaBox" glib:get-type="gtk_cell_area_box_get_type" glib:type-struct="CellAreaBoxClass"> <doc xml:space="preserve">The #GtkCellAreaBox renders cell renderers into a row or a column depending on its #GtkOrientation. GtkCellAreaBox uses a notion of packing. Packing refers to adding cell renderers with reference to a particular position in a #GtkCellAreaBox. There are two reference positions: the start and the end of the box. When the #GtkCellAreaBox is oriented in the %GTK_ORIENTATION_VERTICAL orientation, the start is defined as the top of the box and the end is defined as the bottom. In the %GTK_ORIENTATION_HORIZONTAL orientation start is defined as the left side and the end is defined as the right side. Alignments of #GtkCellRenderers rendered in adjacent rows can be configured by configuring the #GtkCellAreaBox align child cell property with gtk_cell_area_cell_set_property() or by specifying the "align" argument to gtk_cell_area_box_pack_start() and gtk_cell_area_box_pack_end().</doc> <implements name="Buildable"/> <implements name="CellLayout"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_cell_area_box_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkCellAreaBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkCellAreaBox</doc> <type name="CellArea" c:type="GtkCellArea*"/> </return-value> </constructor> <method name="get_spacing" c:identifier="gtk_cell_area_box_get_spacing" version="3.0"> <doc xml:space="preserve">Gets the spacing added between cell renderers.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the space added between cell renderers in @box.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaBox</doc> <type name="CellAreaBox" c:type="GtkCellAreaBox*"/> </instance-parameter> </parameters> </method> <method name="pack_end" c:identifier="gtk_cell_area_box_pack_end" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaBox</doc> <type name="CellAreaBox" c:type="GtkCellAreaBox*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to add</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">whether @renderer should receive extra space when the area receives more than its natural size</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="align" transfer-ownership="none"> <doc xml:space="preserve">whether @renderer should be aligned in adjacent rows</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="fixed" transfer-ownership="none"> <doc xml:space="preserve">whether @renderer should have the same size in all rows</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="pack_start" c:identifier="gtk_cell_area_box_pack_start" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaBox</doc> <type name="CellAreaBox" c:type="GtkCellAreaBox*"/> </instance-parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to add</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">whether @renderer should receive extra space when the area receives more than its natural size</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="align" transfer-ownership="none"> <doc xml:space="preserve">whether @renderer should be aligned in adjacent rows</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="fixed" transfer-ownership="none"> <doc xml:space="preserve">whether @renderer should have the same size in all rows</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_spacing" c:identifier="gtk_cell_area_box_set_spacing" version="3.0"> <doc xml:space="preserve">Sets the spacing to add between cell renderers in @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaBox</doc> <type name="CellAreaBox" c:type="GtkCellAreaBox*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the space to add between #GtkCellRenderers</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="spacing" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The amount of space to reserve between cells.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="CellArea" c:type="GtkCellArea"/> </field> <field name="priv" readable="0" private="1"> <type name="CellAreaBoxPrivate" c:type="GtkCellAreaBoxPrivate*"/> </field> </class> <record name="CellAreaBoxClass" c:type="GtkCellAreaBoxClass" glib:is-gtype-struct-for="CellAreaBox"> <field name="parent_class" readable="0" private="1"> <type name="CellAreaClass" c:type="GtkCellAreaClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellAreaBoxPrivate" c:type="GtkCellAreaBoxPrivate" disguised="1"> </record> <record name="CellAreaClass" c:type="GtkCellAreaClass" glib:is-gtype-struct-for="CellArea"> <field name="parent_class" readable="0" private="1"> <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> </field> <field name="add"> <callback name="add"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to add to @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </callback> </field> <field name="remove"> <callback name="remove"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to remove from @area</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </callback> </field> <field name="foreach"> <callback name="foreach"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="2"> <doc xml:space="preserve">the #GtkCellCallback to call</doc> <type name="CellCallback" c:type="GtkCellCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user provided data pointer</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> </field> <field name="foreach_alloc"> <callback name="foreach_alloc"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates and size for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates of the background area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="6"> <doc xml:space="preserve">the #GtkCellAllocCallback to call</doc> <type name="CellAllocCallback" c:type="GtkCellAllocCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user provided data pointer</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> </field> <field name="event"> <callback name="event"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event was handled by @area.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEvent to handle</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState for @area in this row.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </callback> </field> <field name="render"> <callback name="render"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext for this row of data.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">the #cairo_t to render with</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @areaâs background</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the @widget relative coordinates for @area</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState for @area in this row.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="paint_focus" transfer-ownership="none"> <doc xml:space="preserve">whether @area should paint focus on focused cells for focused rows or not.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="apply_attributes"> <callback name="apply_attributes"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel to pull values from</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter in @tree_model to apply values for</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="is_expander" transfer-ownership="none"> <doc xml:space="preserve">whether @iter has children</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="is_expanded" transfer-ownership="none"> <doc xml:space="preserve">whether @iter is expanded in the view and children are visible</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="create_context"> <callback name="create_context"> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkCellAreaContext which can be used with @area.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> </parameters> </callback> </field> <field name="copy_context"> <callback name="copy_context"> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkCellAreaContext copy of @context.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to copy</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> </parameters> </callback> </field> <field name="get_request_mode"> <callback name="get_request_mode"> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by @area.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_width"> <callback name="get_preferred_width"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to perform this request with</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_height_for_width"> <callback name="get_preferred_height_for_width"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext which has already been requested for widths.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width for which to check the height of this area</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_height"> <callback name="get_preferred_height"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext to perform this request with</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_width_for_height"> <callback name="get_preferred_width_for_height"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext which has already been requested for widths.</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget where @area will be rendering</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height for which to check the width of this area</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="set_cell_property"> <callback name="set_cell_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="renderer" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="property_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="const GValue*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </callback> </field> <field name="get_cell_property"> <callback name="get_cell_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="renderer" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="property_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="GValue*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </callback> </field> <field name="focus"> <callback name="focus"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if focus remains inside @area as a result of this call.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the #GtkDirectionType</doc> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </callback> </field> <field name="is_activatable"> <callback name="is_activatable"> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @area can do anything when activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> </parameters> </callback> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether @area was successfully activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellArea</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext in context with the current row data</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that @area is rendering on</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">the size and location of @area relative to @widgetâs allocation</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRendererState flags for @area for this row of data.</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="edit_only" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE then only cell renderers that are %GTK_CELL_RENDERER_MODE_EDITABLE will be activated.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <method name="find_cell_property" c:identifier="gtk_cell_area_class_find_cell_property" version="3.0"> <doc xml:space="preserve">Finds a cell property of a cell area class by name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec of the child property or %NULL if @aclass has no child property with that name.</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </return-value> <parameters> <instance-parameter name="aclass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaClass</doc> <type name="CellAreaClass" c:type="GtkCellAreaClass*"/> </instance-parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the child property to find</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="install_cell_property" c:identifier="gtk_cell_area_class_install_cell_property" version="3.0"> <doc xml:space="preserve">Installs a cell property on a cell area class.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="aclass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaClass</doc> <type name="CellAreaClass" c:type="GtkCellAreaClass*"/> </instance-parameter> <parameter name="property_id" transfer-ownership="none"> <doc xml:space="preserve">the id for the property</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec for the property</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </method> <method name="list_cell_properties" c:identifier="gtk_cell_area_class_list_cell_properties" version="3.0"> <doc xml:space="preserve">Returns all cell properties of a cell area class.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a newly allocated %NULL-terminated array of #GParamSpec*. The array must be freed with g_free().</doc> <array length="0" zero-terminated="0" c:type="GParamSpec**"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </array> </return-value> <parameters> <instance-parameter name="aclass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaClass</doc> <type name="CellAreaClass" c:type="GtkCellAreaClass*"/> </instance-parameter> <parameter name="n_properties" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to return the number of cell properties found</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> </record> <class name="CellAreaContext" c:symbol-prefix="cell_area_context" c:type="GtkCellAreaContext" parent="GObject.Object" glib:type-name="GtkCellAreaContext" glib:get-type="gtk_cell_area_context_get_type" glib:type-struct="CellAreaContextClass"> <doc xml:space="preserve">The #GtkCellAreaContext object is created by a given #GtkCellArea implementation via its #GtkCellAreaClass.create_context() virtual method and is used to store cell sizes and alignments for a series of #GtkTreeModel rows that are requested and rendered in the same context. #GtkCellLayout widgets can create any number of contexts in which to request and render groups of data rows. However, itâs important that the same context which was used to request sizes for a given #GtkTreeModel row also be used for the same row when calling other #GtkCellArea APIs such as gtk_cell_area_render() and gtk_cell_area_event().</doc> <virtual-method name="allocate" invoker="allocate"> <doc xml:space="preserve">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. Since 3.0</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the allocated width for all #GtkTreeModel rows rendered with @context, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the allocated height for all #GtkTreeModel rows rendered with @context, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_height_for_width" invoker="get_preferred_height_for_width" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">a proposed width for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_width_for_height" invoker="get_preferred_width_for_height" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">a proposed height for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="reset" invoker="reset"> <doc xml:space="preserve">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(). Since 3.0</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> </parameters> </virtual-method> <method name="allocate" c:identifier="gtk_cell_area_context_allocate"> <doc xml:space="preserve">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. Since 3.0</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the allocated width for all #GtkTreeModel rows rendered with @context, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the allocated height for all #GtkTreeModel rows rendered with @context, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_allocation" c:identifier="gtk_cell_area_context_get_allocation" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the allocated width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the allocated height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_area" c:identifier="gtk_cell_area_context_get_area" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellArea this context was created by.</doc> <type name="CellArea" c:type="GtkCellArea*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> </parameters> </method> <method name="get_preferred_height" c:identifier="gtk_cell_area_context_get_preferred_height" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_height_for_width" c:identifier="gtk_cell_area_context_get_preferred_height_for_width" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">a proposed width for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_width" c:identifier="gtk_cell_area_context_get_preferred_width" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_width_for_height" c:identifier="gtk_cell_area_context_get_preferred_width_for_height" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">a proposed height for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="push_preferred_height" c:identifier="gtk_cell_area_context_push_preferred_height" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="minimum_height" transfer-ownership="none"> <doc xml:space="preserve">the proposed new minimum height for @context</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="natural_height" transfer-ownership="none"> <doc xml:space="preserve">the proposed new natural height for @context</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="push_preferred_width" c:identifier="gtk_cell_area_context_push_preferred_width" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> <parameter name="minimum_width" transfer-ownership="none"> <doc xml:space="preserve">the proposed new minimum width for @context</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="natural_width" transfer-ownership="none"> <doc xml:space="preserve">the proposed new natural width for @context</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="reset" c:identifier="gtk_cell_area_context_reset"> <doc xml:space="preserve">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(). Since 3.0</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </instance-parameter> </parameters> </method> <property name="area" version="3.0" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellArea this context was created by</doc> <type name="CellArea"/> </property> <property name="minimum-height" version="3.0" transfer-ownership="none"> <doc xml:space="preserve">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().</doc> <type name="gint" c:type="gint"/> </property> <property name="minimum-width" version="3.0" transfer-ownership="none"> <doc xml:space="preserve">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().</doc> <type name="gint" c:type="gint"/> </property> <property name="natural-height" version="3.0" transfer-ownership="none"> <doc xml:space="preserve">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().</doc> <type name="gint" c:type="gint"/> </property> <property name="natural-width" version="3.0" transfer-ownership="none"> <doc xml:space="preserve">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().</doc> <type name="gint" c:type="gint"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="CellAreaContextPrivate" c:type="GtkCellAreaContextPrivate*"/> </field> </class> <record name="CellAreaContextClass" c:type="GtkCellAreaContextClass" glib:is-gtype-struct-for="CellAreaContext"> <field name="parent_class" readable="0" private="1"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="allocate"> <callback name="allocate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the allocated width for all #GtkTreeModel rows rendered with @context, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the allocated height for all #GtkTreeModel rows rendered with @context, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="reset"> <callback name="reset"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_height_for_width"> <callback name="get_preferred_height_for_width"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">a proposed width for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_width_for_height"> <callback name="get_preferred_width_for_height"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellAreaContext</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">a proposed height for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellAreaContextPrivate" c:type="GtkCellAreaContextPrivate" disguised="1"> </record> <record name="CellAreaPrivate" c:type="GtkCellAreaPrivate" disguised="1"> </record> <callback name="CellCallback" c:type="GtkCellCallback"> <doc xml:space="preserve">The type of the callback functions used for iterating over the cell renderers of a #GtkCellArea, see gtk_cell_area_foreach().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop iterating over cells.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">the cell renderer to operate on</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user-supplied data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <interface name="CellEditable" c:symbol-prefix="cell_editable" c:type="GtkCellEditable" glib:type-name="GtkCellEditable" glib:get-type="gtk_cell_editable_get_type" glib:type-struct="CellEditableIface"> <doc xml:space="preserve">The #GtkCellEditable interface must be implemented for widgets to be usable when editing the contents of a #GtkTreeView cell.</doc> <prerequisite name="Widget"/> <virtual-method name="editing_done" invoker="editing_done"> <doc xml:space="preserve">Emits the #GtkCellEditable::editing-done signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="remove_widget" invoker="remove_widget"> <doc xml:space="preserve">Emits the #GtkCellEditable::remove-widget signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="start_editing" invoker="start_editing"> <doc xml:space="preserve">Begins editing on a @cell_editable. @event is the #GdkEvent that began the editing process. It may be %NULL, in the instance that editing was initiated through programatic means.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </instance-parameter> <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GdkEvent, or %NULL</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </virtual-method> <method name="editing_done" c:identifier="gtk_cell_editable_editing_done"> <doc xml:space="preserve">Emits the #GtkCellEditable::editing-done signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </instance-parameter> </parameters> </method> <method name="remove_widget" c:identifier="gtk_cell_editable_remove_widget"> <doc xml:space="preserve">Emits the #GtkCellEditable::remove-widget signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </instance-parameter> </parameters> </method> <method name="start_editing" c:identifier="gtk_cell_editable_start_editing"> <doc xml:space="preserve">Begins editing on a @cell_editable. @event is the #GdkEvent that began the editing process. It may be %NULL, in the instance that editing was initiated through programatic means.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </instance-parameter> <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GdkEvent, or %NULL</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </method> <property name="editing-canceled" version="2.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Indicates whether editing on the cell has been canceled.</doc> <type name="gboolean" c:type="gboolean"/> </property> <glib:signal name="editing-done" when="last"> <doc xml:space="preserve">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 is emitting it when the user presses Enter. gtk_cell_editable_editing_done() is a convenience method for emitting #GtkCellEditable::editing-done.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="remove-widget" when="last"> <doc xml:space="preserve">This signal is meant to indicate that the cell is finished editing, and the widget may now 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </interface> <record name="CellEditableIface" c:type="GtkCellEditableIface" glib:is-gtype-struct-for="CellEditable"> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="editing_done"> <callback name="editing_done"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </parameter> </parameters> </callback> </field> <field name="remove_widget"> <callback name="remove_widget"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </parameter> </parameters> </callback> </field> <field name="start_editing"> <callback name="start_editing"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_editable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellEditable</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </parameter> <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GdkEvent, or %NULL</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </callback> </field> </record> <interface name="CellLayout" c:symbol-prefix="cell_layout" c:type="GtkCellLayout" glib:type-name="GtkCellLayout" glib:get-type="gtk_cell_layout_get_type" glib:type-struct="CellLayoutIface"> <doc xml:space="preserve">#GtkCellLayout is an interface to be implemented by all objects which want to provide a #GtkTreeViewColumn like API for packing cells, setting attributes and data funcs. One of the notable features provided by implementations of GtkCellLayout are attributes. Attributes let you set the properties in flexible ways. They can just be set to constant values like regular properties. But they can also be mapped to a column of the underlying tree model with gtk_cell_layout_set_attributes(), which means that the value of the attribute can change from cell to cell as they are rendered by the cell renderer. Finally, it is possible to specify a function with gtk_cell_layout_set_cell_data_func() that is called to determine the value of the attribute for each cell that is rendered. # GtkCellLayouts as GtkBuildable Implementations of GtkCellLayout which also implement the GtkBuildable interface (#GtkCellView, #GtkIconView, #GtkComboBox, #GtkEntryCompletion, #GtkTreeViewColumn) accept GtkCellRenderer objects as <child> elements in UI definitions. They support a custom <attributes> element for their children, which can contain multiple <attribute> elements. Each <attribute> element has a name attribute which specifies a property of the cell renderer; the content of the element is the attribute value. This is an example of a UI definition fragment specifying attributes: |[ <object class="GtkCellView"> <child> <object class="GtkCellRendererText"/> <attributes> <attribute name="text">0</attribute> </attributes> </child>" </object> ]| Furthermore for implementations of GtkCellLayout that use a #GtkCellArea to lay out cells (all GtkCellLayouts in GTK+ use a GtkCellArea) [cell properties][cell-properties] can also be defined in the format by specifying the custom <cell-packing> attribute which can contain multiple <property> elements defined in the normal way. Here is a UI definition fragment specifying cell properties: |[ <object class="GtkTreeViewColumn"> <child> <object class="GtkCellRendererText"/> <cell-packing> <property name="align">True</property> <property name="expand">False</property> </cell-packing> </child>" </object> ]| # Subclassing GtkCellLayout implementations When subclassing a widget that implements #GtkCellLayout like #GtkIconView or #GtkComboBox, there are some considerations related to the fact that these widgets internally use a #GtkCellArea. The cell area is exposed as a construct-only property by these widgets. This means that it is possible to e.g. do |[<!-- language="C" --> combo = g_object_new (GTK_TYPE_COMBO_BOX, "cell-area", my_cell_area, NULL); ]| to use a custom cell area with a combo box. But construct properties are only initialized after instance init() functions have run, which means that using functions which rely on the existence of the cell area in your subclassâ init() function will cause the default cell area to be instantiated. In this case, a provided construct property value will be ignored (with a warning, to alert you to the problem). |[<!-- language="C" --> static void my_combo_box_init (MyComboBox *b) { GtkCellRenderer *cell; cell = gtk_cell_renderer_pixbuf_new (); // The following call causes the default cell area for combo boxes, // a GtkCellAreaBox, to be instantiated gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (b), cell, FALSE); ... } GtkWidget * my_combo_box_new (GtkCellArea *area) { // This call is going to cause a warning about area being ignored return g_object_new (MY_TYPE_COMBO_BOX, "cell-area", area, NULL); } ]| If supporting alternative cell areas with your derived widget is not important, then this does not have to concern you. If you want to support alternative cell areas, you can do so by moving the problematic calls out of init() and into a constructor() for your class.</doc> <virtual-method name="add_attribute" invoker="add_attribute" version="2.4"> <doc xml:space="preserve">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 parameter on @cell 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="attribute" transfer-ownership="none"> <doc xml:space="preserve">an attribute on the renderer</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column position on the model to get the attribute from</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="clear" invoker="clear" version="2.4"> <doc xml:space="preserve">Unsets all the mappings on all renderers on @cell_layout and removes all renderers from @cell_layout.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="clear_attributes" invoker="clear_attributes" version="2.4"> <doc xml:space="preserve">Clears all existing attributes previously set with gtk_cell_layout_set_attributes().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer to clear the attribute mapping on</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_area" invoker="get_area" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the cell area used by @cell_layout, or %NULL in case no cell area is used.</doc> <type name="CellArea" c:type="GtkCellArea*"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_cells" invoker="get_cells" version="2.12"> <doc xml:space="preserve">Returns the cell renderers which have been added to @cell_layout.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve"> 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.</doc> <type name="GLib.List" c:type="GList*"> <type name="CellRenderer"/> </type> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="pack_end" invoker="pack_end" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell is to be given extra space allocated to @cell_layout</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="pack_start" invoker="pack_start" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell is to be given extra space allocated to @cell_layout</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="reorder" invoker="reorder" version="2.4"> <doc xml:space="preserve">Re-inserts @cell at @position. Note that @cell has already to be packed into @cell_layout for this to function properly.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer to reorder</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">new position to insert @cell at</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_cell_data_func" invoker="set_cell_data_func" version="2.4"> <doc xml:space="preserve">Sets the #GtkCellLayoutDataFunc 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">the #GtkCellLayoutDataFunc to use, or %NULL</doc> <type name="CellLayoutDataFunc" c:type="GtkCellLayoutDataFunc"/> </parameter> <parameter name="func_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data for @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notify for @func_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </virtual-method> <method name="add_attribute" c:identifier="gtk_cell_layout_add_attribute" version="2.4"> <doc xml:space="preserve">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 parameter on @cell 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="attribute" transfer-ownership="none"> <doc xml:space="preserve">an attribute on the renderer</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column position on the model to get the attribute from</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="clear" c:identifier="gtk_cell_layout_clear" version="2.4"> <doc xml:space="preserve">Unsets all the mappings on all renderers on @cell_layout and removes all renderers from @cell_layout.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> </parameters> </method> <method name="clear_attributes" c:identifier="gtk_cell_layout_clear_attributes" version="2.4"> <doc xml:space="preserve">Clears all existing attributes previously set with gtk_cell_layout_set_attributes().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer to clear the attribute mapping on</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="get_area" c:identifier="gtk_cell_layout_get_area" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the cell area used by @cell_layout, or %NULL in case no cell area is used.</doc> <type name="CellArea" c:type="GtkCellArea*"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> </parameters> </method> <method name="get_cells" c:identifier="gtk_cell_layout_get_cells" version="2.12"> <doc xml:space="preserve">Returns the cell renderers which have been added to @cell_layout.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve"> 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.</doc> <type name="GLib.List" c:type="GList*"> <type name="CellRenderer"/> </type> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> </parameters> </method> <method name="pack_end" c:identifier="gtk_cell_layout_pack_end" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell is to be given extra space allocated to @cell_layout</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="pack_start" c:identifier="gtk_cell_layout_pack_start" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell is to be given extra space allocated to @cell_layout</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="reorder" c:identifier="gtk_cell_layout_reorder" version="2.4"> <doc xml:space="preserve">Re-inserts @cell at @position. Note that @cell has already to be packed into @cell_layout for this to function properly.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer to reorder</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">new position to insert @cell at</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_attributes" c:identifier="gtk_cell_layout_set_attributes" version="2.4" introspectable="0"> <doc xml:space="preserve">Sets the attributes in list as the attributes of @cell_layout. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated list of attributes</doc> <varargs/> </parameter> </parameters> </method> <method name="set_cell_data_func" c:identifier="gtk_cell_layout_set_cell_data_func" version="2.4"> <doc xml:space="preserve">Sets the #GtkCellLayoutDataFunc 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">the #GtkCellLayoutDataFunc to use, or %NULL</doc> <type name="CellLayoutDataFunc" c:type="GtkCellLayoutDataFunc"/> </parameter> <parameter name="func_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data for @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notify for @func_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> </interface> <callback name="CellLayoutDataFunc" c:type="GtkCellLayoutDataFunc"> <doc xml:space="preserve">A function which should set the value of @cell_layoutâs cell renderer(s) as appropriate.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">the cell renderer whose value is to be set</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">the model</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter indicating the row to set the value for</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">user data passed to gtk_cell_layout_set_cell_data_func()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="CellLayoutIface" c:type="GtkCellLayoutIface" glib:is-gtype-struct-for="CellLayout"> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="pack_start"> <callback name="pack_start"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell is to be given extra space allocated to @cell_layout</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="pack_end"> <callback name="pack_end"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell is to be given extra space allocated to @cell_layout</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="clear"> <callback name="clear"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> </parameters> </callback> </field> <field name="add_attribute"> <callback name="add_attribute"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="attribute" transfer-ownership="none"> <doc xml:space="preserve">an attribute on the renderer</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column position on the model to get the attribute from</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="set_cell_data_func"> <callback name="set_cell_data_func"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="3" destroy="4"> <doc xml:space="preserve">the #GtkCellLayoutDataFunc to use, or %NULL</doc> <type name="CellLayoutDataFunc" c:type="GtkCellLayoutDataFunc"/> </parameter> <parameter name="func_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data for @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notify for @func_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </callback> </field> <field name="clear_attributes"> <callback name="clear_attributes"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer to clear the attribute mapping on</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </callback> </field> <field name="reorder"> <callback name="reorder"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer to reorder</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">new position to insert @cell at</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="get_cells"> <callback name="get_cells"> <return-value transfer-ownership="container"> <doc xml:space="preserve"> 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.</doc> <type name="GLib.List" c:type="GList*"> <type name="CellRenderer"/> </type> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> </parameters> </callback> </field> <field name="get_area"> <callback name="get_area"> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the cell area used by @cell_layout, or %NULL in case no cell area is used.</doc> <type name="CellArea" c:type="GtkCellArea*"/> </return-value> <parameters> <parameter name="cell_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellLayout</doc> <type name="CellLayout" c:type="GtkCellLayout*"/> </parameter> </parameters> </callback> </field> </record> <class name="CellRenderer" c:symbol-prefix="cell_renderer" c:type="GtkCellRenderer" parent="GObject.InitiallyUnowned" abstract="1" glib:type-name="GtkCellRenderer" glib:get-type="gtk_cell_renderer_get_type" glib:type-struct="CellRendererClass"> <doc xml:space="preserve">The #GtkCellRenderer is a base class of a set of objects used for rendering a cell to a #cairo_t. These objects are used primarily by the #GtkTreeView widget, though they arenât tied to them in any specific way. It is worth noting that #GtkCellRenderer is not a #GtkWidget and cannot be treated as such. The primary use of a #GtkCellRenderer is for drawing a certain graphical elements on a #cairo_t. Typically, one cell renderer is used to draw many cells on the screen. To this extent, it isnât expected that a CellRenderer keep any permanent state around. Instead, any state is set just prior to use using #GObjects property system. Then, the cell is measured using gtk_cell_renderer_get_size(). Finally, the cell is rendered in the correct location using gtk_cell_renderer_render(). There are a number of rules that must be followed when writing a new #GtkCellRenderer. First and foremost, itâs important that a certain set of properties will always yield a cell renderer of the same size, barring a #GtkStyle change. The #GtkCellRenderer also has a number of generic properties that are expected to be honored by all children. Beyond merely rendering a cell, cell renderers can optionally provide active user interface elements. A cell renderer can be âactivatableâ like #GtkCellRendererToggle, which toggles when it gets activated by a mouse click, or it can be âeditableâ like #GtkCellRendererText, which allows the user to edit the text using a #GtkEntry. To make a cell renderer activatable or editable, you have to implement the #GtkCellRendererClass.activate or #GtkCellRendererClass.start_editing virtual functions, respectively. Many properties of #GtkCellRenderer and its subclasses have a corresponding âsetâ property, e.g. âcell-background-setâ corresponds to âcell-backgroundâ. These âsetâ properties reflect whether a property has been set or not. You should not set them independently.</doc> <virtual-method name="activate" invoker="activate"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event was consumed/handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget that received the event</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">widget-dependent string representation of the event location; e.g. for #GtkTreeView, a string representation of #GtkTreePath</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">background area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </virtual-method> <virtual-method name="editing_canceled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="editing_started"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="editable" transfer-ownership="none"> <type name="CellEditable" c:type="GtkCellEditable*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_aligned_area" invoker="get_aligned_area" version="3.0"> <doc xml:space="preserve">Gets the aligned area used by @cell inside @cell_area. Used for finding the appropriate edit and focus rectangle.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area which would be passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="aligned_area" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the return location for the space inside @cell_area that would acually be used to render.</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_height" invoker="get_preferred_height" version="3.0"> <doc xml:space="preserve">Retreives a rendererâs natural size when rendered to @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_height_for_width" invoker="get_preferred_height_for_width" version="3.0"> <doc xml:space="preserve">Retreives a cell renderersâs minimum and natural height if it were rendered to @widget with the specified @width.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the size which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the preferred size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_width" invoker="get_preferred_width" version="3.0"> <doc xml:space="preserve">Retreives a rendererâs natural size when rendered to @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_width_for_height" invoker="get_preferred_width_for_height" version="3.0"> <doc xml:space="preserve">Retreives a cell renderersâs minimum and natural width if it were rendered to @widget with the specified @height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the size which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the preferred size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_request_mode" invoker="get_request_mode" version="3.0"> <doc xml:space="preserve">Gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by this renderer.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_size" invoker="get_size" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Obtains the width and height needed to render the cell. Used by view widgets to determine the appropriate size for the cell_area passed to gtk_cell_renderer_render(). If @cell_area is not %NULL, fills in the x and y offsets (if set) of the cell relative to this location. Please note that the values set in @width and @height, as well as those in @x_offset and @y_offset are inclusive of the xpad and ypad properties.</doc> <doc-deprecated xml:space="preserve">Use gtk_cell_renderer_get_preferred_size() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget the renderer is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The area a cell will be allocated, or %NULL</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="x_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return x offset of cell relative to @cell_area, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return y offset of cell relative to @cell_area, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return width needed to render a cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return height needed to render a cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="render" invoker="render"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a cairo context to draw to</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget owning @window</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">entire cell area (including tree expanders and maybe padding on the sides)</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">area normally rendered by a cell renderer</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags that affect rendering</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </virtual-method> <virtual-method name="start_editing" invoker="start_editing"> <doc xml:space="preserve">Passes an activate event to the cell renderer for possible processing.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A new #GtkCellEditable, or %NULL</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget that received the event</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">widget-dependent string representation of the event location; e.g. for #GtkTreeView, a string representation of #GtkTreePath</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">background area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </virtual-method> <method name="activate" c:identifier="gtk_cell_renderer_activate"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event was consumed/handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget that received the event</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">widget-dependent string representation of the event location; e.g. for #GtkTreeView, a string representation of #GtkTreePath</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">background area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </method> <method name="get_aligned_area" c:identifier="gtk_cell_renderer_get_aligned_area" version="3.0"> <doc xml:space="preserve">Gets the aligned area used by @cell inside @cell_area. Used for finding the appropriate edit and focus rectangle.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area which would be passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="aligned_area" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the return location for the space inside @cell_area that would acually be used to render.</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_alignment" c:identifier="gtk_cell_renderer_get_alignment" version="2.18"> <doc xml:space="preserve">Fills in @xalign and @yalign with the appropriate values of @cell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="xalign" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to fill in with the x alignment of the cell, or %NULL</doc> <type name="gfloat" c:type="gfloat*"/> </parameter> <parameter name="yalign" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to fill in with the y alignment of the cell, or %NULL</doc> <type name="gfloat" c:type="gfloat*"/> </parameter> </parameters> </method> <method name="get_fixed_size" c:identifier="gtk_cell_renderer_get_fixed_size"> <doc xml:space="preserve">Fills in @width and @height with the appropriate size of @cell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to fill in with the fixed width of the cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to fill in with the fixed height of the cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_padding" c:identifier="gtk_cell_renderer_get_padding" version="2.18"> <doc xml:space="preserve">Fills in @xpad and @ypad with the appropriate values of @cell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="xpad" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to fill in with the x padding of the cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="ypad" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to fill in with the y padding of the cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_height" c:identifier="gtk_cell_renderer_get_preferred_height" version="3.0"> <doc xml:space="preserve">Retreives a rendererâs natural size when rendered to @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_height_for_width" c:identifier="gtk_cell_renderer_get_preferred_height_for_width" version="3.0"> <doc xml:space="preserve">Retreives a cell renderersâs minimum and natural height if it were rendered to @widget with the specified @width.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the size which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the preferred size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_size" c:identifier="gtk_cell_renderer_get_preferred_size" version="3.0"> <doc xml:space="preserve">Retrieves the minimum and natural size of a cell taking into account the widgetâs preference for height-for-width management.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_size" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum size, or %NULL</doc> <type name="Requisition" c:type="GtkRequisition*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural size, or %NULL</doc> <type name="Requisition" c:type="GtkRequisition*"/> </parameter> </parameters> </method> <method name="get_preferred_width" c:identifier="gtk_cell_renderer_get_preferred_width" version="3.0"> <doc xml:space="preserve">Retreives a rendererâs natural size when rendered to @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_width_for_height" c:identifier="gtk_cell_renderer_get_preferred_width_for_height" version="3.0"> <doc xml:space="preserve">Retreives a cell renderersâs minimum and natural width if it were rendered to @widget with the specified @height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the size which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the preferred size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_request_mode" c:identifier="gtk_cell_renderer_get_request_mode" version="3.0"> <doc xml:space="preserve">Gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by this renderer.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> </parameters> </method> <method name="get_sensitive" c:identifier="gtk_cell_renderer_get_sensitive" version="2.18"> <doc xml:space="preserve">Returns the cell rendererâs sensitivity.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cell renderer is sensitive</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> </parameters> </method> <method name="get_size" c:identifier="gtk_cell_renderer_get_size" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Obtains the width and height needed to render the cell. Used by view widgets to determine the appropriate size for the cell_area passed to gtk_cell_renderer_render(). If @cell_area is not %NULL, fills in the x and y offsets (if set) of the cell relative to this location. Please note that the values set in @width and @height, as well as those in @x_offset and @y_offset are inclusive of the xpad and ypad properties.</doc> <doc-deprecated xml:space="preserve">Use gtk_cell_renderer_get_preferred_size() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget the renderer is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The area a cell will be allocated, or %NULL</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="x_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return x offset of cell relative to @cell_area, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return y offset of cell relative to @cell_area, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return width needed to render a cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return height needed to render a cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_state" c:identifier="gtk_cell_renderer_get_state" version="3.0"> <doc xml:space="preserve">Translates the cell renderer state to #GtkStateFlags, based on the cell renderer and widget sensitivity, and the given #GtkCellRendererState.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widget state flags applying to @cell</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkCellRenderer, or %NULL</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_state" transfer-ownership="none"> <doc xml:space="preserve">cell renderer state</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </method> <method name="get_visible" c:identifier="gtk_cell_renderer_get_visible" version="2.18"> <doc xml:space="preserve">Returns the cell rendererâs visibility.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cell renderer is visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> </parameters> </method> <method name="is_activatable" c:identifier="gtk_cell_renderer_is_activatable" version="3.0"> <doc xml:space="preserve">Checks whether the cell renderer can do something when activated.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cell renderer can do anything when activated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> </parameters> </method> <method name="render" c:identifier="gtk_cell_renderer_render"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a cairo context to draw to</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget owning @window</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">entire cell area (including tree expanders and maybe padding on the sides)</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">area normally rendered by a cell renderer</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags that affect rendering</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </method> <method name="set_alignment" c:identifier="gtk_cell_renderer_set_alignment" version="2.18"> <doc xml:space="preserve">Sets the rendererâs alignment within its available space.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">the x alignment of the cell renderer</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">the y alignment of the cell renderer</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="set_fixed_size" c:identifier="gtk_cell_renderer_set_fixed_size"> <doc xml:space="preserve">Sets the renderer size to be explicit, independent of the properties set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the cell renderer, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the cell renderer, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_padding" c:identifier="gtk_cell_renderer_set_padding" version="2.18"> <doc xml:space="preserve">Sets the rendererâs padding.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="xpad" transfer-ownership="none"> <doc xml:space="preserve">the x padding of the cell renderer</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="ypad" transfer-ownership="none"> <doc xml:space="preserve">the y padding of the cell renderer</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_sensitive" c:identifier="gtk_cell_renderer_set_sensitive" version="2.18"> <doc xml:space="preserve">Sets the cell rendererâs sensitivity.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="sensitive" transfer-ownership="none"> <doc xml:space="preserve">the sensitivity of the cell</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visible" c:identifier="gtk_cell_renderer_set_visible" version="2.18"> <doc xml:space="preserve">Sets the cell rendererâs visibility.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">the visibility of the cell</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="start_editing" c:identifier="gtk_cell_renderer_start_editing"> <doc xml:space="preserve">Passes an activate event to the cell renderer for possible processing.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A new #GtkCellEditable, or %NULL</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget that received the event</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">widget-dependent string representation of the event location; e.g. for #GtkTreeView, a string representation of #GtkTreePath</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">background area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </method> <method name="stop_editing" c:identifier="gtk_cell_renderer_stop_editing" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </instance-parameter> <parameter name="canceled" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the editing has been canceled</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="cell-background" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="cell-background-gdk" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Cell background as a #GdkColor</doc> <doc-deprecated xml:space="preserve">Use #GtkCellRenderer:cell-background-rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="cell-background-rgba" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Cell background as a #GdkRGBA</doc> <type name="Gdk.RGBA"/> </property> <property name="cell-background-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="editing" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="height" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="is-expanded" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="is-expander" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="mode" writable="1" transfer-ownership="none"> <type name="CellRendererMode"/> </property> <property name="sensitive" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="width" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="xalign" writable="1" transfer-ownership="none"> <type name="gfloat" c:type="gfloat"/> </property> <property name="xpad" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="yalign" writable="1" transfer-ownership="none"> <type name="gfloat" c:type="gfloat"/> </property> <property name="ypad" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <field name="parent_instance"> <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererPrivate" c:type="GtkCellRendererPrivate*"/> </field> <glib:signal name="editing-canceled" when="first" version="2.4"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="editing-started" when="first" version="2.6"> <doc xml:space="preserve">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. 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: |[<!-- language="C" --> static void text_editing_started (GtkCellRenderer *cell, GtkCellEditable *editable, const gchar *path, gpointer data) { if (GTK_IS_ENTRY (editable)) { GtkEntry *entry = GTK_ENTRY (editable); // ... create a GtkEntryCompletion gtk_entry_set_completion (entry, completion); } } ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellEditable</doc> <type name="CellEditable"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the path identifying the edited cell</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> </class> <class name="CellRendererAccel" c:symbol-prefix="cell_renderer_accel" c:type="GtkCellRendererAccel" parent="CellRendererText" glib:type-name="GtkCellRendererAccel" glib:get-type="gtk_cell_renderer_accel_get_type" glib:type-struct="CellRendererAccelClass"> <doc xml:space="preserve">#GtkCellRendererAccel displays a keyboard accelerator (i.e. a key combination like `Control + a`). If the cell renderer is editable, the accelerator can be changed by simply typing the new combination. The #GtkCellRendererAccel cell renderer was added in GTK+ 2.10.</doc> <constructor name="new" c:identifier="gtk_cell_renderer_accel_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkCellRendererAccel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new cell renderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> </constructor> <virtual-method name="accel_cleared"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel" transfer-ownership="none"> <type name="CellRendererAccel" c:type="GtkCellRendererAccel*"/> </instance-parameter> <parameter name="path_string" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="accel_edited"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="accel" transfer-ownership="none"> <type name="CellRendererAccel" c:type="GtkCellRendererAccel*"/> </instance-parameter> <parameter name="path_string" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="hardware_keycode" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <property name="accel-key" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The keyval of the accelerator.</doc> <type name="guint" c:type="guint"/> </property> <property name="accel-mode" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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. If the mode is set to %GTK_CELL_RENDERER_ACCEL_MODE_MODIFIER_TAP then bare modifiers can be set as accelerators by tapping (ie: pressing and immediately releasing) them.</doc> <type name="CellRendererAccelMode"/> </property> <property name="accel-mods" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The modifier mask of the accelerator.</doc> <type name="Gdk.ModifierType"/> </property> <property name="keycode" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="guint" c:type="guint"/> </property> <field name="parent"> <type name="CellRendererText" c:type="GtkCellRendererText"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererAccelPrivate" c:type="GtkCellRendererAccelPrivate*"/> </field> <glib:signal name="accel-cleared" when="last" version="2.10"> <doc xml:space="preserve">Gets emitted when the user has removed the accelerator.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path_string" transfer-ownership="none"> <doc xml:space="preserve">the path identifying the row of the edited cell</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="accel-edited" when="last" version="2.10"> <doc xml:space="preserve">Gets emitted when the user has selected a new accelerator.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path_string" transfer-ownership="none"> <doc xml:space="preserve">the path identifying the row of the edited cell</doc> <type name="utf8" c:type="gchar*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">the new accelerator keyval</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">the new acclerator modifier mask</doc> <type name="Gdk.ModifierType"/> </parameter> <parameter name="hardware_keycode" transfer-ownership="none"> <doc xml:space="preserve">the keycode of the new accelerator</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> </class> <record name="CellRendererAccelClass" c:type="GtkCellRendererAccelClass" glib:is-gtype-struct-for="CellRendererAccel"> <field name="parent_class"> <type name="CellRendererTextClass" c:type="GtkCellRendererTextClass"/> </field> <field name="accel_edited"> <callback name="accel_edited"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accel" transfer-ownership="none"> <type name="CellRendererAccel" c:type="GtkCellRendererAccel*"/> </parameter> <parameter name="path_string" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="hardware_keycode" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="accel_cleared"> <callback name="accel_cleared"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accel" transfer-ownership="none"> <type name="CellRendererAccel" c:type="GtkCellRendererAccel*"/> </parameter> <parameter name="path_string" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved0" introspectable="0"> <callback name="_gtk_reserved0"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="CellRendererAccelMode" glib:type-name="GtkCellRendererAccelMode" glib:get-type="gtk_cell_renderer_accel_mode_get_type" c:type="GtkCellRendererAccelMode"> <doc xml:space="preserve">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.</doc> <member name="gtk" value="0" c:identifier="GTK_CELL_RENDERER_ACCEL_MODE_GTK" glib:nick="gtk"> <doc xml:space="preserve">GTK+ accelerators mode</doc> </member> <member name="other" value="1" c:identifier="GTK_CELL_RENDERER_ACCEL_MODE_OTHER" glib:nick="other"> <doc xml:space="preserve">Other accelerator mode GTK_CELL_RENDERER_ACCEL_MODE_MODIFIER_TAP: Bare modifiers mode</doc> </member> <member name="modifier_tap" value="2" c:identifier="GTK_CELL_RENDERER_ACCEL_MODE_MODIFIER_TAP" glib:nick="modifier-tap"> </member> </enumeration> <record name="CellRendererAccelPrivate" c:type="GtkCellRendererAccelPrivate" disguised="1"> </record> <record name="CellRendererClass" c:type="GtkCellRendererClass" glib:is-gtype-struct-for="CellRenderer"> <field name="parent_class" readable="0" private="1"> <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> </field> <field name="get_request_mode"> <callback name="get_request_mode"> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by this renderer.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_width"> <callback name="get_preferred_width"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_height_for_width"> <callback name="get_preferred_height_for_width"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the size which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the preferred size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_height"> <callback name="get_preferred_height"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_width_for_height"> <callback name="get_preferred_width_for_height"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the size which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the preferred size, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_aligned_area"> <callback name="get_aligned_area"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer instance</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget this cell will be rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area which would be passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="aligned_area" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the return location for the space inside @cell_area that would acually be used to render.</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </callback> </field> <field name="get_size"> <callback name="get_size"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget the renderer is rendering to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cell_area" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The area a cell will be allocated, or %NULL</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="x_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return x offset of cell relative to @cell_area, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return y offset of cell relative to @cell_area, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return width needed to render a cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return height needed to render a cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="render"> <callback name="render"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a cairo context to draw to</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget owning @window</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">entire cell area (including tree expanders and maybe padding on the sides)</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">area normally rendered by a cell renderer</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags that affect rendering</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </callback> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event was consumed/handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget that received the event</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">widget-dependent string representation of the event location; e.g. for #GtkTreeView, a string representation of #GtkTreePath</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">background area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </callback> </field> <field name="start_editing"> <callback name="start_editing"> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A new #GtkCellEditable, or %NULL</doc> <type name="CellEditable" c:type="GtkCellEditable*"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget that received the event</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">widget-dependent string representation of the event location; e.g. for #GtkTreeView, a string representation of #GtkTreePath</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="background_area" transfer-ownership="none"> <doc xml:space="preserve">background area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="cell_area" transfer-ownership="none"> <doc xml:space="preserve">cell area as passed to gtk_cell_renderer_render()</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">render flags</doc> <type name="CellRendererState" c:type="GtkCellRendererState"/> </parameter> </parameters> </callback> </field> <field name="editing_canceled"> <callback name="editing_canceled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </callback> </field> <field name="editing_started"> <callback name="editing_started"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="editable" transfer-ownership="none"> <type name="CellEditable" c:type="GtkCellEditable*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererClassPrivate" c:type="GtkCellRendererClassPrivate*"/> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <method name="set_accessible_type" c:identifier="gtk_cell_renderer_class_set_accessible_type"> <doc xml:space="preserve">Sets the type to be used for creating accessibles for cells rendered by cell renderers of @renderer_class. Note that multiple accessibles will be created. This function should only be called from class init functions of cell renderers.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="renderer_class" transfer-ownership="none"> <doc xml:space="preserve">class to set the accessible type for</doc> <type name="CellRendererClass" c:type="GtkCellRendererClass*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">The object type that implements the accessible for @widget_class. The type must be a subtype of #GtkRendererCellAccessible</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </method> </record> <record name="CellRendererClassPrivate" c:type="GtkCellRendererClassPrivate" disguised="1"> </record> <class name="CellRendererCombo" c:symbol-prefix="cell_renderer_combo" c:type="GtkCellRendererCombo" parent="CellRendererText" glib:type-name="GtkCellRendererCombo" glib:get-type="gtk_cell_renderer_combo_get_type" glib:type-struct="CellRendererComboClass"> <doc xml:space="preserve">#GtkCellRendererCombo renders text in a cell like #GtkCellRendererText from which it is derived. But while #GtkCellRendererText offers a simple entry to edit the text, #GtkCellRendererCombo offers a #GtkComboBox widget to edit the text. The values to display in the combo box are taken from the tree model specified in the #GtkCellRendererCombo:model property. The combo cell renderer takes care of adding a text cell renderer to the combo box and sets it to display the column specified by its #GtkCellRendererCombo:text-column property. Further properties of the combo box can be set in a handler for the #GtkCellRenderer::editing-started signal. The #GtkCellRendererCombo cell renderer was added in GTK+ 2.6.</doc> <constructor name="new" c:identifier="gtk_cell_renderer_combo_new" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new cell renderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> </constructor> <property name="has-entry" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, the cell renderer will include an entry and allow to enter values other than the ones in the popup list.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="model" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Holds a tree model containing the possible values for the combo box. Use the text_column property to specify the column holding the values.</doc> <type name="TreeModel"/> </property> <property name="text-column" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent"> <type name="CellRendererText" c:type="GtkCellRendererText"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererComboPrivate" c:type="GtkCellRendererComboPrivate*"/> </field> <glib:signal name="changed" when="last" version="2.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path_string" transfer-ownership="none"> <doc xml:space="preserve">a string of the path identifying the edited cell (relative to the tree view model)</doc> <type name="utf8" c:type="gchar*"/> </parameter> <parameter name="new_iter" transfer-ownership="none"> <doc xml:space="preserve">the new iter selected in the combo box (relative to the combo box model)</doc> <type name="TreeIter"/> </parameter> </parameters> </glib:signal> </class> <record name="CellRendererComboClass" c:type="GtkCellRendererComboClass" glib:is-gtype-struct-for="CellRendererCombo"> <field name="parent"> <type name="CellRendererTextClass" c:type="GtkCellRendererTextClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellRendererComboPrivate" c:type="GtkCellRendererComboPrivate" disguised="1"> </record> <enumeration name="CellRendererMode" glib:type-name="GtkCellRendererMode" glib:get-type="gtk_cell_renderer_mode_get_type" c:type="GtkCellRendererMode"> <doc xml:space="preserve">Identifies how the user can interact with a particular cell.</doc> <member name="inert" value="0" c:identifier="GTK_CELL_RENDERER_MODE_INERT" glib:nick="inert"> <doc xml:space="preserve">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.</doc> </member> <member name="activatable" value="1" c:identifier="GTK_CELL_RENDERER_MODE_ACTIVATABLE" glib:nick="activatable"> <doc xml:space="preserve">The cell can be clicked.</doc> </member> <member name="editable" value="2" c:identifier="GTK_CELL_RENDERER_MODE_EDITABLE" glib:nick="editable"> <doc xml:space="preserve">The cell can be edited or otherwise modified.</doc> </member> </enumeration> <class name="CellRendererPixbuf" c:symbol-prefix="cell_renderer_pixbuf" c:type="GtkCellRendererPixbuf" parent="CellRenderer" glib:type-name="GtkCellRendererPixbuf" glib:get-type="gtk_cell_renderer_pixbuf_get_type" glib:type-struct="CellRendererPixbufClass"> <doc xml:space="preserve">A #GtkCellRendererPixbuf can be used to render an image in a cell. It allows to render either a given #GdkPixbuf (set via the #GtkCellRendererPixbuf:pixbuf property) or a named icon (set via the #GtkCellRendererPixbuf:icon-name property). To support the tree view, #GtkCellRendererPixbuf also supports rendering two alternative pixbufs, when the #GtkCellRenderer:is-expander property is %TRUE. If the #GtkCellRenderer:is-expanded property is %TRUE and the #GtkCellRendererPixbuf:pixbuf-expander-open property is set to a pixbuf, it renders that pixbuf, if the #GtkCellRenderer:is-expanded property is %FALSE and the #GtkCellRendererPixbuf:pixbuf-expander-closed property is set to a pixbuf, it renders that one.</doc> <constructor name="new" c:identifier="gtk_cell_renderer_pixbuf_new"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new cell renderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> </constructor> <property name="follow-state" version="2.8" deprecated="1" deprecated-version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Specifies whether the rendered pixbuf should be colorized according to the #GtkCellRendererState.</doc> <doc-deprecated xml:space="preserve">Cell renderers always follow state.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gicon" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The GIcon representing the icon to display. If the icon theme is changed, the image will be updated automatically.</doc> <type name="Gio.Icon"/> </property> <property name="icon-name" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The name of the themed icon to display. This property only has an effect if not overridden by "stock_id" or "pixbuf" properties.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="pixbuf" writable="1" transfer-ownership="none"> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="pixbuf-expander-closed" writable="1" transfer-ownership="none"> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="pixbuf-expander-open" writable="1" transfer-ownership="none"> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="stock-detail" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="stock-id" version="2.2" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">Use #GtkCellRendererPixbuf:icon-name instead.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="stock-size" version="2.2" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkIconSize value that specifies the size of the rendered icon.</doc> <type name="guint" c:type="guint"/> </property> <property name="surface" version="3.10" writable="1" transfer-ownership="none"> <type name="cairo.Surface"/> </property> <field name="parent"> <type name="CellRenderer" c:type="GtkCellRenderer"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererPixbufPrivate" c:type="GtkCellRendererPixbufPrivate*"/> </field> </class> <record name="CellRendererPixbufClass" c:type="GtkCellRendererPixbufClass" glib:is-gtype-struct-for="CellRendererPixbuf"> <field name="parent_class"> <type name="CellRendererClass" c:type="GtkCellRendererClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellRendererPixbufPrivate" c:type="GtkCellRendererPixbufPrivate" disguised="1"> </record> <record name="CellRendererPrivate" c:type="GtkCellRendererPrivate" disguised="1"> </record> <class name="CellRendererProgress" c:symbol-prefix="cell_renderer_progress" c:type="GtkCellRendererProgress" parent="CellRenderer" glib:type-name="GtkCellRendererProgress" glib:get-type="gtk_cell_renderer_progress_get_type" glib:type-struct="CellRendererProgressClass"> <doc xml:space="preserve">#GtkCellRendererProgress renders a numeric value as a progress par in a cell. Additionally, it can display a text on top of the progress bar. The #GtkCellRendererProgress cell renderer was added in GTK+ 2.6.</doc> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_cell_renderer_progress_new" version="2.6"> <doc xml:space="preserve">Creates a new #GtkCellRendererProgress.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new cell renderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> </constructor> <property name="inverted" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="pulse" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Setting this to a non-negative value causes the cell renderer to enter "activity mode", 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.</doc> <type name="gint" c:type="gint"/> </property> <property name="text" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The "text" 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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="text-xalign" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The "text-xalign" 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.</doc> <type name="gfloat" c:type="gfloat"/> </property> <property name="text-yalign" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The "text-yalign" property controls the vertical alignment of the text in the progress bar. Valid values range from 0 (top) to 1 (bottom).</doc> <type name="gfloat" c:type="gfloat"/> </property> <property name="value" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The "value" property determines the percentage to which the progress bar will be "filled in".</doc> <type name="gint" c:type="gint"/> </property> <field name="parent_instance"> <type name="CellRenderer" c:type="GtkCellRenderer"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererProgressPrivate" c:type="GtkCellRendererProgressPrivate*"/> </field> </class> <record name="CellRendererProgressClass" c:type="GtkCellRendererProgressClass" glib:is-gtype-struct-for="CellRendererProgress"> <field name="parent_class"> <type name="CellRendererClass" c:type="GtkCellRendererClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellRendererProgressPrivate" c:type="GtkCellRendererProgressPrivate" disguised="1"> </record> <class name="CellRendererSpin" c:symbol-prefix="cell_renderer_spin" c:type="GtkCellRendererSpin" parent="CellRendererText" glib:type-name="GtkCellRendererSpin" glib:get-type="gtk_cell_renderer_spin_get_type" glib:type-struct="CellRendererSpinClass"> <doc xml:space="preserve">#GtkCellRendererSpin renders text in a cell like #GtkCellRendererText from which it is derived. But while #GtkCellRendererText offers a simple entry to edit the text, #GtkCellRendererSpin offers a #GtkSpinButton widget. Of course, that means that the text has to be parseable as a floating point number. The range of the spinbutton is taken from the adjustment property of the cell renderer, which can be set explicitly or mapped to a column in the tree model, like all properties of cell renders. #GtkCellRendererSpin also has properties for the #GtkCellRendererSpin:climb-rate and the number of #GtkCellRendererSpin:digits to display. Other #GtkSpinButton properties can be set in a handler for the #GtkCellRenderer::editing-started signal. The #GtkCellRendererSpin cell renderer was added in GTK+ 2.10.</doc> <constructor name="new" c:identifier="gtk_cell_renderer_spin_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkCellRendererSpin.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkCellRendererSpin</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> </constructor> <property name="adjustment" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The adjustment that holds the value of the spinbutton. This must be non-%NULL for the cell renderer to be editable.</doc> <type name="Adjustment"/> </property> <property name="climb-rate" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The acceleration rate when you hold down a button.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="digits" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The number of decimal places to display.</doc> <type name="guint" c:type="guint"/> </property> <field name="parent"> <type name="CellRendererText" c:type="GtkCellRendererText"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererSpinPrivate" c:type="GtkCellRendererSpinPrivate*"/> </field> </class> <record name="CellRendererSpinClass" c:type="GtkCellRendererSpinClass" glib:is-gtype-struct-for="CellRendererSpin"> <field name="parent"> <type name="CellRendererTextClass" c:type="GtkCellRendererTextClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellRendererSpinPrivate" c:type="GtkCellRendererSpinPrivate" disguised="1"> </record> <class name="CellRendererSpinner" c:symbol-prefix="cell_renderer_spinner" c:type="GtkCellRendererSpinner" parent="CellRenderer" glib:type-name="GtkCellRendererSpinner" glib:get-type="gtk_cell_renderer_spinner_get_type" glib:type-struct="CellRendererSpinnerClass"> <doc xml:space="preserve">GtkCellRendererSpinner renders a spinning animation in a cell, very similar to #GtkSpinner. It can often be used as an alternative to a #GtkCellRendererProgress for displaying indefinite activity, instead of actual progress. To start the animation in a cell, set the #GtkCellRendererSpinner:active property to %TRUE and increment the #GtkCellRendererSpinner:pulse property at regular intervals. The usual way to set the cell renderer properties for each cell is to bind them to columns in your tree model using e.g. gtk_tree_view_column_add_attribute().</doc> <constructor name="new" c:identifier="gtk_cell_renderer_spinner_new" version="2.20"> <doc xml:space="preserve">Returns a new cell renderer which will show a spinner to indicate activity.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> </constructor> <property name="active" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="pulse" version="2.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="guint" c:type="guint"/> </property> <property name="size" version="2.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkIconSize value that specifies the size of the rendered spinner.</doc> <type name="IconSize"/> </property> <field name="parent"> <type name="CellRenderer" c:type="GtkCellRenderer"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererSpinnerPrivate" c:type="GtkCellRendererSpinnerPrivate*"/> </field> </class> <record name="CellRendererSpinnerClass" c:type="GtkCellRendererSpinnerClass" glib:is-gtype-struct-for="CellRendererSpinner"> <field name="parent_class"> <type name="CellRendererClass" c:type="GtkCellRendererClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellRendererSpinnerPrivate" c:type="GtkCellRendererSpinnerPrivate" disguised="1"> </record> <bitfield name="CellRendererState" glib:type-name="GtkCellRendererState" glib:get-type="gtk_cell_renderer_state_get_type" c:type="GtkCellRendererState"> <doc xml:space="preserve">Tells how a cell is to be rendered.</doc> <member name="selected" value="1" c:identifier="GTK_CELL_RENDERER_SELECTED" glib:nick="selected"> <doc xml:space="preserve">The cell is currently selected, and probably has a selection colored background to render to.</doc> </member> <member name="prelit" value="2" c:identifier="GTK_CELL_RENDERER_PRELIT" glib:nick="prelit"> <doc xml:space="preserve">The mouse is hovering over the cell.</doc> </member> <member name="insensitive" value="4" c:identifier="GTK_CELL_RENDERER_INSENSITIVE" glib:nick="insensitive"> <doc xml:space="preserve">The cell is drawn in an insensitive manner</doc> </member> <member name="sorted" value="8" c:identifier="GTK_CELL_RENDERER_SORTED" glib:nick="sorted"> <doc xml:space="preserve">The cell is in a sorted row</doc> </member> <member name="focused" value="16" c:identifier="GTK_CELL_RENDERER_FOCUSED" glib:nick="focused"> <doc xml:space="preserve">The cell is in the focus row.</doc> </member> <member name="expandable" value="32" c:identifier="GTK_CELL_RENDERER_EXPANDABLE" glib:nick="expandable"> <doc xml:space="preserve">The cell is in a row that can be expanded. Since 3.4</doc> </member> <member name="expanded" value="64" c:identifier="GTK_CELL_RENDERER_EXPANDED" glib:nick="expanded"> <doc xml:space="preserve">The cell is in a row that is expanded. Since 3.4</doc> </member> </bitfield> <class name="CellRendererText" c:symbol-prefix="cell_renderer_text" c:type="GtkCellRendererText" parent="CellRenderer" glib:type-name="GtkCellRendererText" glib:get-type="gtk_cell_renderer_text_get_type" glib:type-struct="CellRendererTextClass"> <doc xml:space="preserve">A #GtkCellRendererText renders a given text in its cell, using the font, color and style information provided by its properties. The text will be ellipsized if it is too long and the #GtkCellRendererText:ellipsize property allows it. If the #GtkCellRenderer:mode is %GTK_CELL_RENDERER_MODE_EDITABLE, the #GtkCellRendererText allows to edit its text using an entry.</doc> <constructor name="new" c:identifier="gtk_cell_renderer_text_new"> <doc xml:space="preserve">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</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new cell renderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> </constructor> <virtual-method name="edited"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_renderer_text" transfer-ownership="none"> <type name="CellRendererText" c:type="GtkCellRendererText*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="set_fixed_height_from_font" c:identifier="gtk_cell_renderer_text_set_fixed_height_from_font"> <doc xml:space="preserve">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 unflexible, 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="renderer" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRendererText</doc> <type name="CellRendererText" c:type="GtkCellRendererText*"/> </instance-parameter> <parameter name="number_of_rows" transfer-ownership="none"> <doc xml:space="preserve">Number of rows of text each cell renderer is allocated, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="align-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="alignment" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 "xalign" property of #GtkCellRenderer, on the other hand, sets the horizontal alignment of the whole text.</doc> <type name="Pango.Alignment"/> </property> <property name="attributes" writable="1" transfer-ownership="none"> <type name="Pango.AttrList"/> </property> <property name="background" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="background-gdk" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Background color as a #GdkColor</doc> <doc-deprecated xml:space="preserve">Use #GtkCellRendererText:background-rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="background-rgba" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Background color as a #GdkRGBA</doc> <type name="Gdk.RGBA"/> </property> <property name="background-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="editable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="editable-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="ellipsize" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="Pango.EllipsizeMode"/> </property> <property name="ellipsize-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="family" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="family-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="font" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="font-desc" writable="1" transfer-ownership="none"> <type name="Pango.FontDescription"/> </property> <property name="foreground" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="foreground-gdk" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Foreground color as a #GdkColor</doc> <doc-deprecated xml:space="preserve">Use #GtkCellRendererText:foreground-rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="foreground-rgba" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Foreground color as a #GdkRGBA</doc> <type name="Gdk.RGBA"/> </property> <property name="foreground-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="language" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="language-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="markup" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="max-width-chars" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="placeholder-text" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text that will be displayed in the #GtkCellRenderer if #GtkCellRendererText:editable is %TRUE and the cell is empty. Since 3.6</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="rise" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="rise-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="scale" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <property name="scale-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="single-paragraph-mode" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="size" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="size-points" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <property name="size-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="stretch" writable="1" transfer-ownership="none"> <type name="Pango.Stretch"/> </property> <property name="stretch-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="strikethrough" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="strikethrough-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="style" writable="1" transfer-ownership="none"> <type name="Pango.Style"/> </property> <property name="style-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="text" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="underline" writable="1" transfer-ownership="none"> <type name="Pango.Underline"/> </property> <property name="underline-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="variant" writable="1" transfer-ownership="none"> <type name="Pango.Variant"/> </property> <property name="variant-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="weight" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="weight-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="width-chars" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="wrap-mode" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="Pango.WrapMode"/> </property> <property name="wrap-width" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent"> <type name="CellRenderer" c:type="GtkCellRenderer"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererTextPrivate" c:type="GtkCellRendererTextPrivate*"/> </field> <glib:signal name="edited" when="last"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the path identifying the edited cell</doc> <type name="utf8" c:type="gchar*"/> </parameter> <parameter name="new_text" transfer-ownership="none"> <doc xml:space="preserve">the new text</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> </class> <record name="CellRendererTextClass" c:type="GtkCellRendererTextClass" glib:is-gtype-struct-for="CellRendererText"> <field name="parent_class"> <type name="CellRendererClass" c:type="GtkCellRendererClass"/> </field> <field name="edited"> <callback name="edited"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_renderer_text" transfer-ownership="none"> <type name="CellRendererText" c:type="GtkCellRendererText*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellRendererTextPrivate" c:type="GtkCellRendererTextPrivate" disguised="1"> </record> <class name="CellRendererToggle" c:symbol-prefix="cell_renderer_toggle" c:type="GtkCellRendererToggle" parent="CellRenderer" glib:type-name="GtkCellRendererToggle" glib:get-type="gtk_cell_renderer_toggle_get_type" glib:type-struct="CellRendererToggleClass"> <doc xml:space="preserve">#GtkCellRendererToggle renders a toggle button in a cell. The button is drawn as a radio or a checkbutton, depending on the #GtkCellRendererToggle:radio property. When activated, it emits the #GtkCellRendererToggle::toggled signal.</doc> <constructor name="new" c:identifier="gtk_cell_renderer_toggle_new"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new cell renderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </return-value> </constructor> <virtual-method name="toggled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_renderer_toggle" transfer-ownership="none"> <type name="CellRendererToggle" c:type="GtkCellRendererToggle*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="get_activatable" c:identifier="gtk_cell_renderer_toggle_get_activatable" version="2.18"> <doc xml:space="preserve">Returns whether the cell renderer is activatable. See gtk_cell_renderer_toggle_set_activatable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cell renderer is activatable.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="toggle" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRendererToggle</doc> <type name="CellRendererToggle" c:type="GtkCellRendererToggle*"/> </instance-parameter> </parameters> </method> <method name="get_active" c:identifier="gtk_cell_renderer_toggle_get_active"> <doc xml:space="preserve">Returns whether the cell renderer is active. See gtk_cell_renderer_toggle_set_active().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cell renderer is active.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="toggle" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRendererToggle</doc> <type name="CellRendererToggle" c:type="GtkCellRendererToggle*"/> </instance-parameter> </parameters> </method> <method name="get_radio" c:identifier="gtk_cell_renderer_toggle_get_radio"> <doc xml:space="preserve">Returns whether weâre rendering radio toggles rather than checkboxes.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if weâre rendering radio toggles rather than checkboxes</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="toggle" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRendererToggle</doc> <type name="CellRendererToggle" c:type="GtkCellRendererToggle*"/> </instance-parameter> </parameters> </method> <method name="set_activatable" c:identifier="gtk_cell_renderer_toggle_set_activatable" version="2.18"> <doc xml:space="preserve">Makes the cell renderer activatable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toggle" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRendererToggle.</doc> <type name="CellRendererToggle" c:type="GtkCellRendererToggle*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the value to set.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_active" c:identifier="gtk_cell_renderer_toggle_set_active"> <doc xml:space="preserve">Activates or deactivates a cell renderer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toggle" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRendererToggle.</doc> <type name="CellRendererToggle" c:type="GtkCellRendererToggle*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the value to set.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_radio" c:identifier="gtk_cell_renderer_toggle_set_radio"> <doc xml:space="preserve">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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toggle" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRendererToggle</doc> <type name="CellRendererToggle" c:type="GtkCellRendererToggle*"/> </instance-parameter> <parameter name="radio" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the toggle look like a radio button</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="activatable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="active" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="inconsistent" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="indicator-size" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="radio" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="CellRenderer" c:type="GtkCellRenderer"/> </field> <field name="priv" readable="0" private="1"> <type name="CellRendererTogglePrivate" c:type="GtkCellRendererTogglePrivate*"/> </field> <glib:signal name="toggled" when="last"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">string representation of #GtkTreePath describing the event location</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> </class> <record name="CellRendererToggleClass" c:type="GtkCellRendererToggleClass" glib:is-gtype-struct-for="CellRendererToggle"> <field name="parent_class"> <type name="CellRendererClass" c:type="GtkCellRendererClass"/> </field> <field name="toggled"> <callback name="toggled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cell_renderer_toggle" transfer-ownership="none"> <type name="CellRendererToggle" c:type="GtkCellRendererToggle*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellRendererTogglePrivate" c:type="GtkCellRendererTogglePrivate" disguised="1"> </record> <class name="CellView" c:symbol-prefix="cell_view" c:type="GtkCellView" parent="Widget" glib:type-name="GtkCellView" glib:get-type="gtk_cell_view_get_type" glib:type-struct="CellViewClass"> <doc xml:space="preserve">A #GtkCellView displays a single row of a #GtkTreeModel using a #GtkCellArea and #GtkCellAreaContext. A #GtkCellAreaContext can be provided to the #GtkCellView at construction time in order to keep the cellview in context of a group of cell views, this ensures that the renderers displayed will be properly aligned with eachother (like the aligned cells in the menus of #GtkComboBox). #GtkCellView is #GtkOrientable in order to decide in which orientation the underlying #GtkCellAreaContext should be allocated. Taking the #GtkComboBox menu as an example, cellviews should be oriented horizontally if the menus are listed top-to-bottom and thus all share the same width but may have separate individual heights (left-to-right menus should be allocated vertically since they all share the same height but may have variable widths). # CSS nodes GtkCellView has a single CSS node with name cellview.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="CellLayout"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_cell_view_new" version="2.6"> <doc xml:space="preserve">Creates a new #GtkCellView widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkCellView widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_context" c:identifier="gtk_cell_view_new_with_context" version="2.6"> <doc xml:space="preserve">Creates a new #GtkCellView widget with a specific #GtkCellArea to layout cells and a specific #GtkCellAreaContext. Specifying the same context for a handfull of cells lets the underlying area synchronize the geometry for those cells, in this way alignments with cellviews for other rows are possible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkCellView widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellArea to layout cells</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellAreaContext in which to calculate cell geometry</doc> <type name="CellAreaContext" c:type="GtkCellAreaContext*"/> </parameter> </parameters> </constructor> <constructor name="new_with_markup" c:identifier="gtk_cell_view_new_with_markup" version="2.6"> <doc xml:space="preserve">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][PangoMarkupFormat].</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkCellView widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="markup" transfer-ownership="none"> <doc xml:space="preserve">the text to display in the cell view</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_pixbuf" c:identifier="gtk_cell_view_new_with_pixbuf" version="2.6"> <doc xml:space="preserve">Creates a new #GtkCellView widget, adds a #GtkCellRendererPixbuf to it, and makes it show @pixbuf.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkCellView widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">the image to display in the cell view</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </constructor> <constructor name="new_with_text" c:identifier="gtk_cell_view_new_with_text" version="2.6"> <doc xml:space="preserve">Creates a new #GtkCellView widget, adds a #GtkCellRendererText to it, and makes it show @text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkCellView widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the text to display in the cell view</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_displayed_row" c:identifier="gtk_cell_view_get_displayed_row" version="2.6"> <doc xml:space="preserve">Returns a #GtkTreePath referring to the currently displayed row. If no row is currently displayed, %NULL is returned.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the currently displayed row or %NULL</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> </parameters> </method> <method name="get_draw_sensitive" c:identifier="gtk_cell_view_get_draw_sensitive" version="3.0"> <doc xml:space="preserve">Gets whether @cell_view is configured to draw all of its cells in a sensitive state.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @cell_view draws all of its cells in a sensitive state</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> </parameters> </method> <method name="get_fit_model" c:identifier="gtk_cell_view_get_fit_model" version="3.0"> <doc xml:space="preserve">Gets whether @cell_view is configured to request space to fit the entire #GtkTreeModel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @cell_view requests space to fit the entire #GtkTreeModel.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> </parameters> </method> <method name="get_model" c:identifier="gtk_cell_view_get_model" version="2.16"> <doc xml:space="preserve">Returns the model for @cell_view. If no model is used %NULL is returned.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkTreeModel used or %NULL</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> </parameters> </method> <method name="get_size_of_row" c:identifier="gtk_cell_view_get_size_of_row" version="2.6" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets @requisition to the size needed by @cell_view to display the model row pointed to by @path.</doc> <doc-deprecated xml:space="preserve">Combo box formerly used this to calculate the sizes for cellviews, now you can achieve this by either using the #GtkCellView:fit-model property or by setting the currently displayed row of the #GtkCellView and using gtk_widget_get_preferred_size().</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="requisition" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the size</doc> <type name="Requisition" c:type="GtkRequisition*"/> </parameter> </parameters> </method> <method name="set_background_color" c:identifier="gtk_cell_view_set_background_color" version="2.6" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the background color of @view.</doc> <doc-deprecated xml:space="preserve">Use gtk_cell_view_set_background_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">the new background color</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="set_background_rgba" c:identifier="gtk_cell_view_set_background_rgba" version="3.0"> <doc xml:space="preserve">Sets the background color of @cell_view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> <parameter name="rgba" transfer-ownership="none"> <doc xml:space="preserve">the new background color</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <method name="set_displayed_row" c:identifier="gtk_cell_view_set_displayed_row" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreePath or %NULL to unset.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="set_draw_sensitive" c:identifier="gtk_cell_view_set_draw_sensitive" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> <parameter name="draw_sensitive" transfer-ownership="none"> <doc xml:space="preserve">whether to draw all cells in a sensitive state.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_fit_model" c:identifier="gtk_cell_view_set_fit_model" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> <parameter name="fit_model" transfer-ownership="none"> <doc xml:space="preserve">whether @cell_view should request space for the whole model.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_model" c:identifier="gtk_cell_view_set_model" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cell_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellView</doc> <type name="CellView" c:type="GtkCellView*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </method> <property name="background" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="background-gdk" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The background color as a #GdkColor</doc> <doc-deprecated xml:space="preserve">Use #GtkCellView:background-rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="background-rgba" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The background color as a #GdkRGBA</doc> <type name="Gdk.RGBA"/> </property> <property name="background-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="cell-area" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellArea rendering cells If no area is specified when creating the cell view with gtk_cell_view_new_with_context() a horizontally oriented #GtkCellAreaBox will be used. since 3.0</doc> <type name="CellArea"/> </property> <property name="cell-area-context" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">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</doc> <type name="CellAreaContext"/> </property> <property name="draw-sensitive" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="fit-model" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 doesnt change when different items are selected). since 3.0</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="model" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The model for cell view since 2.10</doc> <type name="TreeModel"/> </property> <field name="parent_instance"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="CellViewPrivate" c:type="GtkCellViewPrivate*"/> </field> </class> <record name="CellViewClass" c:type="GtkCellViewClass" glib:is-gtype-struct-for="CellView"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CellViewPrivate" c:type="GtkCellViewPrivate" disguised="1"> </record> <class name="CheckButton" c:symbol-prefix="check_button" c:type="GtkCheckButton" parent="ToggleButton" glib:type-name="GtkCheckButton" glib:get-type="gtk_check_button_get_type" glib:type-struct="CheckButtonClass"> <doc xml:space="preserve">A #GtkCheckButton places a discrete #GtkToggleButton next to a widget, (usually a #GtkLabel). See the section on #GtkToggleButton widgets for more information about toggle/check buttons. The important signal ( #GtkToggleButton::toggled ) is also inherited from #GtkToggleButton. # CSS nodes |[<!-- language="plain" --> checkbutton âââ check â°ââ <child> ]| A GtkCheckButton with indicator (see gtk_toggle_button_set_mode()) has a main CSS node with name checkbutton and a subnode with name check. |[<!-- language="plain" --> button.check âââ check â°ââ <child> ]| A GtkCheckButton without indicator changes the name of its main node to button and adds a .check style class to it. The subnode is invisible in this case.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_check_button_new"> <doc xml:space="preserve">Creates a new #GtkCheckButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_label" c:identifier="gtk_check_button_new_with_label"> <doc xml:space="preserve">Creates a new #GtkCheckButton with a #GtkLabel to the right of it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text for the check button.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_check_button_new_with_mnemonic"> <doc xml:space="preserve">Creates a new #GtkCheckButton containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in @label indicate the mnemonic for the check button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkCheckButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">The text of the button, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="draw_indicator"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="check_button" transfer-ownership="none"> <type name="CheckButton" c:type="GtkCheckButton*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </virtual-method> <field name="toggle_button"> <type name="ToggleButton" c:type="GtkToggleButton"/> </field> </class> <record name="CheckButtonClass" c:type="GtkCheckButtonClass" glib:is-gtype-struct-for="CheckButton"> <field name="parent_class"> <type name="ToggleButtonClass" c:type="GtkToggleButtonClass"/> </field> <field name="draw_indicator"> <callback name="draw_indicator"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="check_button" transfer-ownership="none"> <type name="CheckButton" c:type="GtkCheckButton*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="CheckMenuItem" c:symbol-prefix="check_menu_item" c:type="GtkCheckMenuItem" parent="MenuItem" glib:type-name="GtkCheckMenuItem" glib:get-type="gtk_check_menu_item_get_type" glib:type-struct="CheckMenuItemClass"> <doc xml:space="preserve">A #GtkCheckMenuItem is a menu item that maintains the state of a boolean value in addition to a #GtkMenuItem usual role in activating application code. A check box indicating the state of the boolean value is displayed at the left side of the #GtkMenuItem. Activating the #GtkMenuItem toggles the value. # CSS nodes |[<!-- language="plain" --> menuitem âââ check.left â°ââ <child> ]| GtkCheckMenuItem has a main CSS node with name menuitem, and a subnode with name check, which gets the .left or .right style class.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_check_menu_item_new"> <doc xml:space="preserve">Creates a new #GtkCheckMenuItem.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkCheckMenuItem.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_label" c:identifier="gtk_check_menu_item_new_with_label"> <doc xml:space="preserve">Creates a new #GtkCheckMenuItem with a label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkCheckMenuItem.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the string to use for the label.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_check_menu_item_new_with_mnemonic"> <doc xml:space="preserve">Creates a new #GtkCheckMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in @label indicate the mnemonic for the menu item.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkCheckMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">The text of the button, with an underscore in front of the character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="draw_indicator"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </virtual-method> <virtual-method name="toggled" invoker="toggled"> <doc xml:space="preserve">Emits the #GtkCheckMenuItem::toggled signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem.</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_active" c:identifier="gtk_check_menu_item_get_active"> <doc xml:space="preserve">Returns whether the check menu item is active. See gtk_check_menu_item_set_active ().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menu item is checked.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_draw_as_radio" c:identifier="gtk_check_menu_item_get_draw_as_radio" version="2.4"> <doc xml:space="preserve">Returns whether @check_menu_item looks like a #GtkRadioMenuItem</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether @check_menu_item looks like a #GtkRadioMenuItem</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_inconsistent" c:identifier="gtk_check_menu_item_get_inconsistent"> <doc xml:space="preserve">Retrieves the value set by gtk_check_menu_item_set_inconsistent().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if inconsistent</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> </parameters> </method> <method name="set_active" c:identifier="gtk_check_menu_item_set_active"> <doc xml:space="preserve">Sets the active state of the menu itemâs check box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem.</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> <parameter name="is_active" transfer-ownership="none"> <doc xml:space="preserve">boolean value indicating whether the check box is active.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_draw_as_radio" c:identifier="gtk_check_menu_item_set_draw_as_radio" version="2.4"> <doc xml:space="preserve">Sets whether @check_menu_item is drawn like a #GtkRadioMenuItem</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> <parameter name="draw_as_radio" transfer-ownership="none"> <doc xml:space="preserve">whether @check_menu_item is drawn like a #GtkRadioMenuItem</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_inconsistent" c:identifier="gtk_check_menu_item_set_inconsistent"> <doc xml:space="preserve">If the user has selected a range of elements (such as some text or spreadsheet cells) that are affected by a boolean setting, and the current values in that range are inconsistent, you may want to display the check in an âin betweenâ state. This function turns on âin betweenâ display. Normally you would turn off the inconsistent state again if the user explicitly selects a setting. This has to be done manually, gtk_check_menu_item_set_inconsistent() only affects visual appearance, it doesnât affect the semantics of the widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to display an âinconsistentâ third state check</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="toggled" c:identifier="gtk_check_menu_item_toggled"> <doc xml:space="preserve">Emits the #GtkCheckMenuItem::toggled signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem.</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </instance-parameter> </parameters> </method> <property name="active" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="draw-as-radio" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="inconsistent" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="menu_item"> <type name="MenuItem" c:type="GtkMenuItem"/> </field> <field name="priv" readable="0" private="1"> <type name="CheckMenuItemPrivate" c:type="GtkCheckMenuItemPrivate*"/> </field> <glib:signal name="toggled" when="first"> <doc xml:space="preserve">This signal is emitted when the state of the check box is changed. A signal handler can use gtk_check_menu_item_get_active() to discover the new state.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="CheckMenuItemAccessible" c:symbol-prefix="check_menu_item_accessible" c:type="GtkCheckMenuItemAccessible" parent="MenuItemAccessible" glib:type-name="GtkCheckMenuItemAccessible" glib:get-type="gtk_check_menu_item_accessible_get_type" glib:type-struct="CheckMenuItemAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="MenuItemAccessible" c:type="GtkMenuItemAccessible"/> </field> <field name="priv"> <type name="CheckMenuItemAccessiblePrivate" c:type="GtkCheckMenuItemAccessiblePrivate*"/> </field> </class> <record name="CheckMenuItemAccessibleClass" c:type="GtkCheckMenuItemAccessibleClass" glib:is-gtype-struct-for="CheckMenuItemAccessible"> <field name="parent_class"> <type name="MenuItemAccessibleClass" c:type="GtkMenuItemAccessibleClass"/> </field> </record> <record name="CheckMenuItemAccessiblePrivate" c:type="GtkCheckMenuItemAccessiblePrivate" disguised="1"> </record> <record name="CheckMenuItemClass" c:type="GtkCheckMenuItemClass" glib:is-gtype-struct-for="CheckMenuItem"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="MenuItemClass" c:type="GtkMenuItemClass"/> </field> <field name="toggled"> <callback name="toggled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="check_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCheckMenuItem.</doc> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </parameter> </parameters> </callback> </field> <field name="draw_indicator"> <callback name="draw_indicator"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="check_menu_item" transfer-ownership="none"> <type name="CheckMenuItem" c:type="GtkCheckMenuItem*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="CheckMenuItemPrivate" c:type="GtkCheckMenuItemPrivate" disguised="1"> </record> <class name="Clipboard" c:symbol-prefix="clipboard" c:type="GtkClipboard" parent="GObject.Object" glib:type-name="GtkClipboard" glib:get-type="gtk_clipboard_get_type"> <doc xml:space="preserve">The #GtkClipboard object represents a clipboard of data shared between different processes or between different widgets in the same process. Each clipboard is identified by a name encoded as a #GdkAtom. (Conversion to and from strings can be done with gdk_atom_intern() and gdk_atom_name().) The default clipboard corresponds to the âCLIPBOARDâ atom; another commonly used clipboard is the âPRIMARYâ clipboard, which, in X, traditionally contains the currently selected text. To support having a number of different formats on the clipboard at the same time, the clipboard mechanism allows providing callbacks instead of the actual data. When you set the contents of the clipboard, you can either supply the data directly (via functions like gtk_clipboard_set_text()), or you can supply a callback to be called at a later time when the data is needed (via gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().) Providing a callback also avoids having to make copies of the data when it is not needed. gtk_clipboard_set_with_data() and gtk_clipboard_set_with_owner() are quite similar; the choice between the two depends mostly on which is more convenient in a particular situation. The former is most useful when you want to have a blob of data with callbacks to convert it into the various data types that you advertise. When the @clear_func you provided is called, you simply free the data blob. The latter is more useful when the contents of clipboard reflect the internal state of a #GObject (As an example, for the PRIMARY clipboard, when an entry widget provides the clipboardâs contents the contents are simply the text within the selected region.) If the contents change, the entry widget can call gtk_clipboard_set_with_owner() to update the timestamp for clipboard ownership, without having to worry about @clear_func being called. Requesting the data from the clipboard is essentially asynchronous. If the contents of the clipboard are provided within the same process, then a direct function call will be made to retrieve the data, but if they are provided by another process, then the data needs to be retrieved from the other process, which may take some time. To avoid blocking the user interface, the call to request the selection, gtk_clipboard_request_contents() takes a callback that will be called when the contents are received (or when the request fails.) If you donât want to deal with providing a separate callback, you can also use gtk_clipboard_wait_for_contents(). What this does is run the GLib main loop recursively waiting for the contents. This can simplify the code flow, but you still have to be aware that other callbacks in your program can be called while this recursive mainloop is running. Along with the functions to get the clipboard contents as an arbitrary data chunk, there are also functions to retrieve it as text, gtk_clipboard_request_text() and gtk_clipboard_wait_for_text(). These functions take care of determining which formats are advertised by the clipboard provider, asking for the clipboard in the best available format and converting the results into the UTF-8 encoding. (The standard form for representing strings in GTK+.)</doc> <function name="get" c:identifier="gtk_clipboard_get"> <doc xml:space="preserve">Returns the clipboard object for the given selection. See gtk_clipboard_get_for_display() for complete details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the appropriate clipboard object. If no clipboard already exists, a new one will be created. Once a clipboard object has been created, it is persistent and, since it is owned by GTK+, must not be freed or unreffed.</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </return-value> <parameters> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">a #GdkAtom which identifies the clipboard to use</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </function> <function name="get_default" c:identifier="gtk_clipboard_get_default" version="3.16"> <doc xml:space="preserve">Returns the default clipboard object for use with cut/copy/paste menu items and keyboard shortcuts.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default clipboard object.</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </return-value> <parameters> <parameter name="display" transfer-ownership="none"> <doc xml:space="preserve">the #GdkDisplay for which the clipboard is to be retrieved.</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> </parameters> </function> <function name="get_for_display" c:identifier="gtk_clipboard_get_for_display" version="2.2"> <doc xml:space="preserve">Returns the clipboard object for the given selection. Cut/copy/paste menu items and keyboard shortcuts should use the default clipboard, returned by passing %GDK_SELECTION_CLIPBOARD for @selection. (%GDK_NONE is supported as a synonym for GDK_SELECTION_CLIPBOARD for backwards compatibility reasons.) The currently-selected object or text should be provided on the clipboard identified by #GDK_SELECTION_PRIMARY. Cut/copy/paste menu items conceptually copy the contents of the #GDK_SELECTION_PRIMARY clipboard to the default clipboard, i.e. they copy the selection to what the user sees as the clipboard. (Passing #GDK_NONE is the same as using `gdk_atom_intern ("CLIPBOARD", FALSE)`. See the [FreeDesktop Clipboard Specification](http://www.freedesktop.org/Standards/clipboards-spec) for a detailed discussion of the âCLIPBOARDâ vs. âPRIMARYâ selections under the X window system. On Win32 the #GDK_SELECTION_PRIMARY clipboard is essentially ignored.) Itâs possible to have arbitrary named clipboards; if you do invent new clipboards, you should prefix the selection name with an underscore (because the ICCCM requires that nonstandard atoms are underscore-prefixed), and namespace it as well. For example, if your application called âFooâ has a special-purpose clipboard, you might call it â_FOO_SPECIAL_CLIPBOARDâ.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the appropriate clipboard object. If no clipboard already exists, a new one will be created. Once a clipboard object has been created, it is persistent and, since it is owned by GTK+, must not be freed or unrefd.</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </return-value> <parameters> <parameter name="display" transfer-ownership="none"> <doc xml:space="preserve">the #GdkDisplay for which the clipboard is to be retrieved or created.</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">a #GdkAtom which identifies the clipboard to use.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </function> <method name="clear" c:identifier="gtk_clipboard_clear"> <doc xml:space="preserve">Clears the contents of the clipboard. Generally this should only be called between the time you call gtk_clipboard_set_with_owner() or gtk_clipboard_set_with_data(), and when the @clear_func you supplied is called. Otherwise, the clipboard may be owned by someone else.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="get_display" c:identifier="gtk_clipboard_get_display" version="2.2"> <doc xml:space="preserve">Gets the #GdkDisplay associated with @clipboard</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkDisplay associated with @clipboard</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="get_owner" c:identifier="gtk_clipboard_get_owner"> <doc xml:space="preserve">If the clipboard contents callbacks were set with gtk_clipboard_set_with_owner(), and the gtk_clipboard_set_with_data() or gtk_clipboard_clear() has not subsequently called, returns the owner set by gtk_clipboard_set_with_owner().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the owner of the clipboard, if any; otherwise %NULL.</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="get_selection" c:identifier="gtk_clipboard_get_selection" version="3.22" introspectable="0"> <doc xml:space="preserve">Gets the selection that this clipboard is for.</doc> <return-value> <doc xml:space="preserve">the selection</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="request_contents" c:identifier="gtk_clipboard_request_contents"> <doc xml:space="preserve">Requests the contents of clipboard as the given target. When the results of the result are later received the supplied callback will be called.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">an atom representing the form into which the clipboard owner should convert the selection.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="callback" transfer-ownership="none" scope="async" closure="2"> <doc xml:space="preserve">A function to call when the results are received (or the retrieval fails). If the retrieval fails the length field of @selection_data will be negative.</doc> <type name="ClipboardReceivedFunc" c:type="GtkClipboardReceivedFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @callback</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="request_image" c:identifier="gtk_clipboard_request_image" version="2.6"> <doc xml:space="preserve">Requests the contents of the clipboard as image. When the image is later received, it will be converted to a #GdkPixbuf, and @callback will be called. The @pixbuf parameter to @callback will contain the resulting #GdkPixbuf if the request succeeded, or %NULL if it failed. This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into an image.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="async" closure="1"> <doc xml:space="preserve">a function to call when the image is received, or the retrieval fails. (It will always be called one way or the other.)</doc> <type name="ClipboardImageReceivedFunc" c:type="GtkClipboardImageReceivedFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @callback.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="request_rich_text" c:identifier="gtk_clipboard_request_rich_text" version="2.10"> <doc xml:space="preserve">Requests the contents of the clipboard as rich text. When the rich text is later received, @callback will be called. The @text parameter to @callback will contain the resulting rich text if the request succeeded, or %NULL if it failed. The @length parameter will contain @textâs length. This function can fail for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into rich text form.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="callback" transfer-ownership="none" scope="async" closure="2"> <doc xml:space="preserve">a function to call when the text is received, or the retrieval fails. (It will always be called one way or the other.)</doc> <type name="ClipboardRichTextReceivedFunc" c:type="GtkClipboardRichTextReceivedFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @callback.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="request_targets" c:identifier="gtk_clipboard_request_targets" version="2.4"> <doc xml:space="preserve">Requests the contents of the clipboard as list of supported targets. When the list is later received, @callback will be called. The @targets parameter to @callback will contain the resulting targets if the request succeeded, or %NULL if it failed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="async" closure="1"> <doc xml:space="preserve">a function to call when the targets are received, or the retrieval fails. (It will always be called one way or the other.)</doc> <type name="ClipboardTargetsReceivedFunc" c:type="GtkClipboardTargetsReceivedFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @callback.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="request_text" c:identifier="gtk_clipboard_request_text"> <doc xml:space="preserve">Requests the contents of the clipboard as text. When the text is later received, it will be converted to UTF-8 if necessary, and @callback will be called. The @text parameter to @callback will contain the resulting text if the request succeeded, or %NULL if it failed. This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into text form.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="async" closure="1"> <doc xml:space="preserve">a function to call when the text is received, or the retrieval fails. (It will always be called one way or the other.)</doc> <type name="ClipboardTextReceivedFunc" c:type="GtkClipboardTextReceivedFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @callback.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="request_uris" c:identifier="gtk_clipboard_request_uris" version="2.14"> <doc xml:space="preserve">Requests the contents of the clipboard as URIs. When the URIs are later received @callback will be called. The @uris parameter to @callback will contain the resulting array of URIs if the request succeeded, or %NULL if it failed. This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into URI form.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="async" closure="1"> <doc xml:space="preserve">a function to call when the URIs are received, or the retrieval fails. (It will always be called one way or the other.)</doc> <type name="ClipboardURIReceivedFunc" c:type="GtkClipboardURIReceivedFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @callback.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="set_can_store" c:identifier="gtk_clipboard_set_can_store" version="2.6"> <doc xml:space="preserve">Hints that the clipboard data should be stored somewhere when the application exits or when gtk_clipboard_store () is called. This value is reset when the clipboard owner changes. Where the clipboard data is stored is platform dependent, see gdk_display_store_clipboard () for more information.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">array containing information about which forms should be stored or %NULL to indicate that all forms should be stored.</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">number of elements in @targets</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_image" c:identifier="gtk_clipboard_set_image" version="2.6"> <doc xml:space="preserve">Sets the contents of the clipboard to the given #GdkPixbuf. GTK+ will take responsibility for responding for requests for the image, and for converting the image into the requested format.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard object</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">a #GdkPixbuf</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_text" c:identifier="gtk_clipboard_set_text"> <doc xml:space="preserve">Sets the contents of the clipboard to the given UTF-8 string. GTK+ will make a copy of the text and take responsibility for responding for requests for the text, and for converting the text into the requested format.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard object</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">a UTF-8 string.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of @text, in bytes, or -1, in which case the length will be determined with strlen().</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_with_data" c:identifier="gtk_clipboard_set_with_data" introspectable="0"> <doc xml:space="preserve">Virtually sets the contents of the specified clipboard by providing a list of supported formats for the clipboard data and a function to call to get the actual data when it is requested.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if setting the clipboard data succeeded. If setting the clipboard data failed the provided callback functions will be ignored.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">array containing information about the available forms for the clipboard data</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">number of elements in @targets</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="get_func" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function to call to get the actual clipboard data</doc> <type name="ClipboardGetFunc" c:type="GtkClipboardGetFunc"/> </parameter> <parameter name="clear_func" transfer-ownership="none" scope="async" closure="4"> <doc xml:space="preserve">when the clipboard contents are set again, this function will be called, and @get_func will not be subsequently called.</doc> <type name="ClipboardClearFunc" c:type="GtkClipboardClearFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @get_func and @clear_func.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="set_with_owner" c:identifier="gtk_clipboard_set_with_owner" introspectable="0"> <doc xml:space="preserve">Virtually sets the contents of the specified clipboard by providing a list of supported formats for the clipboard data and a function to call to get the actual data when it is requested. The difference between this function and gtk_clipboard_set_with_data() is that instead of an generic @user_data pointer, a #GObject is passed in.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if setting the clipboard data succeeded. If setting the clipboard data failed the provided callback functions will be ignored.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">array containing information about the available forms for the clipboard data</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">number of elements in @targets</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="get_func" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function to call to get the actual clipboard data</doc> <type name="ClipboardGetFunc" c:type="GtkClipboardGetFunc"/> </parameter> <parameter name="clear_func" transfer-ownership="none" scope="async"> <doc xml:space="preserve">when the clipboard contents are set again, this function will be called, and @get_func will not be subsequently called</doc> <type name="ClipboardClearFunc" c:type="GtkClipboardClearFunc"/> </parameter> <parameter name="owner" transfer-ownership="none"> <doc xml:space="preserve">an object that âownsâ the data. This object will be passed to the callbacks when called</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> </parameters> </method> <method name="store" c:identifier="gtk_clipboard_store" version="2.6"> <doc xml:space="preserve">Stores the current clipboard data somewhere so that it will stay around after the application has quit.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="wait_for_contents" c:identifier="gtk_clipboard_wait_for_contents"> <doc xml:space="preserve">Requests the contents of the clipboard using the given target. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a newly-allocated #GtkSelectionData object or %NULL if retrieving the given target failed. If non-%NULL, this value must be freed with gtk_selection_data_free() when you are finished with it.</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">an atom representing the form into which the clipboard owner should convert the selection.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </method> <method name="wait_for_image" c:identifier="gtk_clipboard_wait_for_image" version="2.6"> <doc xml:space="preserve">Requests the contents of the clipboard as image and converts the result to a #GdkPixbuf. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a newly-allocated #GdkPixbuf object which must be disposed with g_object_unref(), or %NULL if retrieving the selection data failed. (This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into an image.)</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="wait_for_rich_text" c:identifier="gtk_clipboard_wait_for_rich_text" version="2.10"> <doc xml:space="preserve">Requests the contents of the clipboard as rich text. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a newly-allocated binary block of data which must be freed with g_free(), or %NULL if retrieving the selection data failed. (This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into text form.)</doc> <array length="2" zero-terminated="0" c:type="guint8*"> <type name="guint8" c:type="guint8"/> </array> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="format" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the format of the returned data</doc> <type name="Gdk.Atom" c:type="GdkAtom*"/> </parameter> <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the length of the returned data</doc> <type name="gsize" c:type="gsize*"/> </parameter> </parameters> </method> <method name="wait_for_targets" c:identifier="gtk_clipboard_wait_for_targets" version="2.4"> <doc xml:space="preserve">Returns a list of targets that are present on the clipboard, or %NULL if there arenât any targets available. The returned list must be freed with g_free(). This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if any targets are present on the clipboard, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="targets" direction="out" caller-allocates="0" transfer-ownership="container"> <doc xml:space="preserve">location to store an array of targets. The result stored here must be freed with g_free().</doc> <array length="1" zero-terminated="0" c:type="GdkAtom**"> <type name="Gdk.Atom" c:type="GdkAtom*"/> </array> </parameter> <parameter name="n_targets" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store number of items in @targets.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="wait_for_text" c:identifier="gtk_clipboard_wait_for_text"> <doc xml:space="preserve">Requests the contents of the clipboard as text and converts the result to UTF-8 if necessary. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a newly-allocated UTF-8 string which must be freed with g_free(), or %NULL if retrieving the selection data failed. (This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into text form.)</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="wait_for_uris" c:identifier="gtk_clipboard_wait_for_uris" version="2.14"> <doc xml:space="preserve">Requests the contents of the clipboard as URIs. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve"> a newly-allocated %NULL-terminated array of strings which must be freed with g_strfreev(), or %NULL if retrieving the selection data failed. (This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into URI form.)</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="wait_is_image_available" c:identifier="gtk_clipboard_wait_is_image_available" version="2.6"> <doc xml:space="preserve">Test to see if there is an image available to be pasted This is done by requesting the TARGETS atom and checking if it contains any of the supported image targets. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait. This function is a little faster than calling gtk_clipboard_wait_for_image() since it doesnât need to retrieve the actual image data.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE is there is an image available, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="wait_is_rich_text_available" c:identifier="gtk_clipboard_wait_is_rich_text_available" version="2.10"> <doc xml:space="preserve">Test to see if there is rich text available to be pasted This is done by requesting the TARGETS atom and checking if it contains any of the supported rich text targets. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait. This function is a little faster than calling gtk_clipboard_wait_for_rich_text() since it doesnât need to retrieve the actual text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE is there is rich text available, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </method> <method name="wait_is_target_available" c:identifier="gtk_clipboard_wait_is_target_available" version="2.6"> <doc xml:space="preserve">Checks if a clipboard supports pasting data of a given type. This function can be used to determine if a âPasteâ menu item should be insensitive or not. If you want to see if thereâs text available on the clipboard, use gtk_clipboard_wait_is_text_available () instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the target is available, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">A #GdkAtom indicating which target to look for.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </method> <method name="wait_is_text_available" c:identifier="gtk_clipboard_wait_is_text_available"> <doc xml:space="preserve">Test to see if there is text available to be pasted This is done by requesting the TARGETS atom and checking if it contains any of the supported text targets. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait. This function is a little faster than calling gtk_clipboard_wait_for_text() since it doesnât need to retrieve the actual text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE is there is text available, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <method name="wait_is_uris_available" c:identifier="gtk_clipboard_wait_is_uris_available" version="2.14"> <doc xml:space="preserve">Test to see if there is a list of URIs available to be pasted This is done by requesting the TARGETS atom and checking if it contains the URI targets. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait. This function is a little faster than calling gtk_clipboard_wait_for_uris() since it doesnât need to retrieve the actual URI data.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE is there is an URI list available, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </instance-parameter> </parameters> </method> <glib:signal name="owner-change" when="first" version="2.6"> <doc xml:space="preserve">The ::owner-change signal is emitted when GTK+ receives an event that indicates that the ownership of the selection associated with @clipboard has changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the @GdkEventOwnerChange event</doc> <type name="Gdk.EventOwnerChange"/> </parameter> </parameters> </glib:signal> </class> <callback name="ClipboardClearFunc" c:type="GtkClipboardClearFunc"> <doc xml:space="preserve">A function that will be called when the contents of the clipboard are changed or cleared. Once this has called, the @user_data_or_owner argument will not be used again.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="user_data_or_owner" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the @user_data argument passed to gtk_clipboard_set_with_data(), or the @owner argument passed to gtk_clipboard_set_with_owner()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ClipboardGetFunc" c:type="GtkClipboardGetFunc"> <doc xml:space="preserve">A function that will be called to provide the contents of the selection. If multiple types of data were advertised, the requested type can be determined from the @info parameter or by checking the target field of @selection_data. If the data could successfully be converted into then it should be stored into the @selection_data object by calling gtk_selection_data_set() (or related functions such as gtk_selection_data_set_text()). If no data is set, the requestor will be informed that the attempt to get the data failed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData argument in which the requested data should be stored.</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">the info field corresponding to the requested target from the #GtkTargetEntry array passed to gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="user_data_or_owner" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the @user_data argument passed to gtk_clipboard_set_with_data(), or the @owner argument passed to gtk_clipboard_set_with_owner()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ClipboardImageReceivedFunc" c:type="GtkClipboardImageReceivedFunc" version="2.6"> <doc xml:space="preserve">A function to be called when the results of gtk_clipboard_request_image() are received, or when the request fails.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">the received image</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">the @user_data supplied to gtk_clipboard_request_image().</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ClipboardReceivedFunc" c:type="GtkClipboardReceivedFunc"> <doc xml:space="preserve">A function to be called when the results of gtk_clipboard_request_contents() are received, or when the request fails.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData containing the data was received. If retrieving the data failed, then then length field of @selection_data will be negative.</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">the @user_data supplied to gtk_clipboard_request_contents().</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ClipboardRichTextReceivedFunc" c:type="GtkClipboardRichTextReceivedFunc" version="2.10"> <doc xml:space="preserve">A function to be called when the results of gtk_clipboard_request_rich_text() are received, or when the request fails.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="format" transfer-ownership="none"> <doc xml:space="preserve">The format of the rich text</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the rich text received, as a UTF-8 encoded string, or %NULL if retrieving the data failed.</doc> <type name="utf8" c:type="const guint8*"/> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">Length of the text.</doc> <type name="gsize" c:type="gsize"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">the @user_data supplied to gtk_clipboard_request_rich_text().</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ClipboardTargetsReceivedFunc" c:type="GtkClipboardTargetsReceivedFunc" version="2.4"> <doc xml:space="preserve">A function to be called when the results of gtk_clipboard_request_targets() are received, or when the request fails.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="atoms" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the supported targets, as array of #GdkAtom, or %NULL if retrieving the data failed.</doc> <array length="2" zero-terminated="0" c:type="GdkAtom*"> <type name="Gdk.Atom" c:type="GdkAtom"/> </array> </parameter> <parameter name="n_atoms" transfer-ownership="none"> <doc xml:space="preserve">the length of the @atoms array.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> <doc xml:space="preserve">the @user_data supplied to gtk_clipboard_request_targets().</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ClipboardTextReceivedFunc" c:type="GtkClipboardTextReceivedFunc"> <doc xml:space="preserve">A function to be called when the results of gtk_clipboard_request_text() are received, or when the request fails.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the text received, as a UTF-8 encoded string, or %NULL if retrieving the data failed.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">the @user_data supplied to gtk_clipboard_request_text().</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ClipboardURIReceivedFunc" c:type="GtkClipboardURIReceivedFunc" version="2.14"> <doc xml:space="preserve">A function to be called when the results of gtk_clipboard_request_uris() are received, or when the request fails.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="uris" transfer-ownership="none"> <doc xml:space="preserve">the received URIs</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">the @user_data supplied to gtk_clipboard_request_uris().</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="ColorButton" c:symbol-prefix="color_button" c:type="GtkColorButton" parent="Button" glib:type-name="GtkColorButton" glib:get-type="gtk_color_button_get_type" glib:type-struct="ColorButtonClass"> <doc xml:space="preserve">The #GtkColorButton is a button which displays the currently selected color and allows to open a color selection dialog to change the color. It is suitable widget for selecting a color in a preference dialog. # CSS nodes GtkColorButton has a single CSS node with name button. To differentiate it from a plain #GtkButton, it gets the .color style class.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <implements name="ColorChooser"/> <constructor name="new" c:identifier="gtk_color_button_new" version="2.4"> <doc xml:space="preserve">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-selection dialog will open, allowing the user to select a color. The swatch will be updated to reflect the new color when the user finishes.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new color button</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_color" c:identifier="gtk_color_button_new_with_color" version="2.4" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Creates a new color button.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_button_new_with_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new color button</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">A #GdkColor to set the current color with</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </constructor> <constructor name="new_with_rgba" c:identifier="gtk_color_button_new_with_rgba" version="3.0"> <doc xml:space="preserve">Creates a new color button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new color button</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="rgba" transfer-ownership="none"> <doc xml:space="preserve">A #GdkRGBA to set the current color with</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </constructor> <virtual-method name="color_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cp" transfer-ownership="none"> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_alpha" c:identifier="gtk_color_button_get_alpha" version="2.4" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Returns the current alpha value.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_chooser_get_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">an integer between 0 and 65535</doc> <type name="guint16" c:type="guint16"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> </parameters> </method> <method name="get_color" c:identifier="gtk_color_button_get_color" version="2.4" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets @color to be the current color in the #GtkColorButton widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_chooser_get_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkColor to fill in with the current color</doc> <type name="Gdk.Color" c:type="GdkColor*"/> </parameter> </parameters> </method> <method name="get_rgba" c:identifier="gtk_color_button_get_rgba" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets @rgba to be the current color in the #GtkColorButton widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_chooser_get_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> <parameter name="rgba" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA to fill in with the current color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_color_button_get_title" version="2.4"> <doc xml:space="preserve">Gets the title of the color selection dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">An internal string, do not free the return value</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> </parameters> </method> <method name="get_use_alpha" c:identifier="gtk_color_button_get_use_alpha" version="2.4" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Does the color selection dialog use the alpha channel ?</doc> <doc-deprecated xml:space="preserve">Use gtk_color_chooser_get_use_alpha() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the color sample uses alpha channel, %FALSE if not</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> </parameters> </method> <method name="set_alpha" c:identifier="gtk_color_button_set_alpha" version="2.4" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the current opacity to be @alpha.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_chooser_set_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> <parameter name="alpha" transfer-ownership="none"> <doc xml:space="preserve">an integer between 0 and 65535</doc> <type name="guint16" c:type="guint16"/> </parameter> </parameters> </method> <method name="set_color" c:identifier="gtk_color_button_set_color" version="2.4" deprecated="1"> <doc xml:space="preserve">Sets the current color to be @color.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_chooser_set_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">A #GdkColor to set the current color with</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="set_rgba" c:identifier="gtk_color_button_set_rgba" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the current color to be @rgba.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_chooser_set_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> <parameter name="rgba" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA to set the current color with</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_color_button_set_title" version="2.4"> <doc xml:space="preserve">Sets the title for the color selection dialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">String containing new window title</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_use_alpha" c:identifier="gtk_color_button_set_use_alpha" version="2.4" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets whether or not the color button should use the alpha channel.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_chooser_set_use_alpha() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorButton</doc> <type name="ColorButton" c:type="GtkColorButton*"/> </instance-parameter> <parameter name="use_alpha" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if color button should use alpha channel, %FALSE if not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="alpha" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The selected opacity value (0 fully transparent, 65535 fully opaque).</doc> <type name="guint" c:type="guint"/> </property> <property name="color" version="2.4" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The selected color.</doc> <doc-deprecated xml:space="preserve">Use #GtkColorButton:rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="rgba" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The RGBA color.</doc> <type name="Gdk.RGBA"/> </property> <property name="show-editor" version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Set this property to %TRUE to skip the palette in the dialog and go directly to the color editor. 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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="title" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The title of the color selection dialog</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="use-alpha" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If this property is set to %TRUE, the color swatch on the button is rendered against a checkerboard background to show its opacity and the opacity slider is displayed in the color selection dialog.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="button"> <type name="Button" c:type="GtkButton"/> </field> <field name="priv" readable="0" private="1"> <type name="ColorButtonPrivate" c:type="GtkColorButtonPrivate*"/> </field> <glib:signal name="color-set" when="first" version="2.4"> <doc xml:space="preserve">The ::color-set signal is emitted when the user selects a color. When handling this signal, use gtk_color_button_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::color signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="ColorButtonClass" c:type="GtkColorButtonClass" glib:is-gtype-struct-for="ColorButton"> <field name="parent_class"> <type name="ButtonClass" c:type="GtkButtonClass"/> </field> <field name="color_set"> <callback name="color_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cp" transfer-ownership="none"> <type name="ColorButton" c:type="GtkColorButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ColorButtonPrivate" c:type="GtkColorButtonPrivate" disguised="1"> </record> <interface name="ColorChooser" c:symbol-prefix="color_chooser" c:type="GtkColorChooser" glib:type-name="GtkColorChooser" glib:get-type="gtk_color_chooser_get_type" glib:type-struct="ColorChooserInterface"> <doc xml:space="preserve">#GtkColorChooser is an interface that is implemented by widgets for choosing colors. Depending on the situation, colors may be allowed to have alpha (translucency). In GTK+, the main widgets that implement this interface are #GtkColorChooserWidget, #GtkColorChooserDialog and #GtkColorButton.</doc> <virtual-method name="add_palette" invoker="add_palette" version="3.4"> <doc xml:space="preserve">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 #GtkColorChooserWidget has 27 colors, organized in columns of 3 colors. The default gray palette has 9 grays in a single row. 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 and gray palettes from the color chooser. If @colors is %NULL, removes all previously added palettes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">%GTK_ORIENTATION_HORIZONTAL if the palette should be displayed in rows, %GTK_ORIENTATION_VERTICAL for columns</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="colors_per_line" transfer-ownership="none"> <doc xml:space="preserve">the number of colors to show in each row/column</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_colors" transfer-ownership="none"> <doc xml:space="preserve">the total number of elements in @colors</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="colors" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the colors of the palette, or %NULL</doc> <array length="2" zero-terminated="0" c:type="GdkRGBA*"> <type name="Gdk.RGBA" c:type="GdkRGBA"/> </array> </parameter> </parameters> </virtual-method> <virtual-method name="color_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> <parameter name="color" transfer-ownership="none"> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_rgba" invoker="get_rgba" version="3.4"> <doc xml:space="preserve">Gets the currently-selected color.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA to fill in with the current color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_rgba" invoker="set_rgba" version="3.4"> <doc xml:space="preserve">Sets the color.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">the new color</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </virtual-method> <method name="add_palette" c:identifier="gtk_color_chooser_add_palette" version="3.4"> <doc xml:space="preserve">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 #GtkColorChooserWidget has 27 colors, organized in columns of 3 colors. The default gray palette has 9 grays in a single row. 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 and gray palettes from the color chooser. If @colors is %NULL, removes all previously added palettes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">%GTK_ORIENTATION_HORIZONTAL if the palette should be displayed in rows, %GTK_ORIENTATION_VERTICAL for columns</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="colors_per_line" transfer-ownership="none"> <doc xml:space="preserve">the number of colors to show in each row/column</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_colors" transfer-ownership="none"> <doc xml:space="preserve">the total number of elements in @colors</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="colors" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the colors of the palette, or %NULL</doc> <array length="2" zero-terminated="0" c:type="GdkRGBA*"> <type name="Gdk.RGBA" c:type="GdkRGBA"/> </array> </parameter> </parameters> </method> <method name="get_rgba" c:identifier="gtk_color_chooser_get_rgba" version="3.4"> <doc xml:space="preserve">Gets the currently-selected color.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA to fill in with the current color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_use_alpha" c:identifier="gtk_color_chooser_get_use_alpha" version="3.4"> <doc xml:space="preserve">Returns whether the color chooser shows the alpha channel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the color chooser uses the alpha channel, %FALSE if not</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> </parameters> </method> <method name="set_rgba" c:identifier="gtk_color_chooser_set_rgba" version="3.4"> <doc xml:space="preserve">Sets the color.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">the new color</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <method name="set_use_alpha" c:identifier="gtk_color_chooser_set_use_alpha" version="3.4"> <doc xml:space="preserve">Sets whether or not the color chooser should use the alpha channel.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </instance-parameter> <parameter name="use_alpha" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if color chooser should use alpha channel, %FALSE if not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="rgba" version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The ::rgba property contains the currently selected color, as a #GdkRGBA struct. The property can be set to change the current selection programmatically.</doc> <type name="Gdk.RGBA"/> </property> <property name="use-alpha" version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">When ::use-alpha is %TRUE, colors may have alpha (translucency) information. When it is %FALSE, the #GdkRGBA struct obtained via the #GtkColorChooser: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).</doc> <type name="gboolean" c:type="gboolean"/> </property> <glib:signal name="color-activated" when="first" version="3.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">the color</doc> <type name="Gdk.RGBA"/> </parameter> </parameters> </glib:signal> </interface> <class name="ColorChooserDialog" c:symbol-prefix="color_chooser_dialog" c:type="GtkColorChooserDialog" parent="Dialog" glib:type-name="GtkColorChooserDialog" glib:get-type="gtk_color_chooser_dialog_get_type" glib:type-struct="ColorChooserDialogClass"> <doc xml:space="preserve">The #GtkColorChooserDialog widget is a dialog for choosing a color. It implements the #GtkColorChooser interface.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="ColorChooser"/> <constructor name="new" c:identifier="gtk_color_chooser_dialog_new" version="3.4"> <doc xml:space="preserve">Creates a new #GtkColorChooserDialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkColorChooserDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Title of the dialog, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Transient parent of the dialog, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </constructor> <property name="show-editor" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv" readable="0" private="1"> <type name="ColorChooserDialogPrivate" c:type="GtkColorChooserDialogPrivate*"/> </field> </class> <record name="ColorChooserDialogClass" c:type="GtkColorChooserDialogClass" glib:is-gtype-struct-for="ColorChooserDialog"> <field name="parent_class"> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ColorChooserDialogPrivate" c:type="GtkColorChooserDialogPrivate" disguised="1"> </record> <record name="ColorChooserInterface" c:type="GtkColorChooserInterface" glib:is-gtype-struct-for="ColorChooser"> <field name="base_interface"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="get_rgba"> <callback name="get_rgba"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA to fill in with the current color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </callback> </field> <field name="set_rgba"> <callback name="set_rgba"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">the new color</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </callback> </field> <field name="add_palette"> <callback name="add_palette"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorChooser</doc> <type name="ColorChooser" c:type="GtkColorChooser*"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">%GTK_ORIENTATION_HORIZONTAL if the palette should be displayed in rows, %GTK_ORIENTATION_VERTICAL for columns</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="colors_per_line" transfer-ownership="none"> <doc xml:space="preserve">the number of colors to show in each row/column</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_colors" transfer-ownership="none"> <doc xml:space="preserve">the total number of elements in @colors</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="colors" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the colors of the palette, or %NULL</doc> <array length="3" zero-terminated="0" c:type="GdkRGBA*"> <type name="Gdk.RGBA" c:type="GdkRGBA"/> </array> </parameter> </parameters> </callback> </field> <field name="color_activated"> <callback name="color_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <type name="ColorChooser" c:type="GtkColorChooser*"/> </parameter> <parameter name="color" transfer-ownership="none"> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </callback> </field> <field name="padding"> <array zero-terminated="0" c:type="gpointer" fixed-size="12"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <class name="ColorChooserWidget" c:symbol-prefix="color_chooser_widget" c:type="GtkColorChooserWidget" parent="Box" glib:type-name="GtkColorChooserWidget" glib:get-type="gtk_color_chooser_widget_get_type" glib:type-struct="ColorChooserWidgetClass"> <doc xml:space="preserve">The #GtkColorChooserWidget widget lets the user select a color. By default, the chooser presents a predefined palette of colors, plus a small number of settable custom colors. It is also possible to select a different color with the single-color editor. To enter the single-color editing mode, use the context menu of any color of the palette, or use the '+' button to add a new custom color. The chooser automatically remembers the last selection, as well as custom colors. To change the initially selected color, use gtk_color_chooser_set_rgba(). To get the selected color use gtk_color_chooser_get_rgba(). The #GtkColorChooserWidget is used in the #GtkColorChooserDialog to provide a dialog for selecting colors. # CSS names GtkColorChooserWidget has a single CSS node with name colorchooser.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="ColorChooser"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_color_chooser_widget_new" version="3.4"> <doc xml:space="preserve">Creates a new #GtkColorChooserWidget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkColorChooserWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <property name="show-editor" version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The ::show-editor property is %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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="ColorChooserWidgetPrivate" c:type="GtkColorChooserWidgetPrivate*"/> </field> </class> <record name="ColorChooserWidgetClass" c:type="GtkColorChooserWidgetClass" glib:is-gtype-struct-for="ColorChooserWidget"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ColorChooserWidgetPrivate" c:type="GtkColorChooserWidgetPrivate" disguised="1"> </record> <class name="ColorSelection" c:symbol-prefix="color_selection" c:type="GtkColorSelection" parent="Box" glib:type-name="GtkColorSelection" glib:get-type="gtk_color_selection_get_type" glib:type-struct="ColorSelectionClass"> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_color_selection_new"> <doc xml:space="preserve">Creates a new GtkColorSelection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkColorSelection</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <function name="palette_from_string" c:identifier="gtk_color_selection_palette_from_string"> <doc xml:space="preserve">Parses a color palette string; the string is a colon-separated list of color names readable by gdk_color_parse().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a palette was successfully parsed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">a string encoding a color palette</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="colors" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for allocated array of #GdkColor</doc> <array length="2" zero-terminated="0" c:type="GdkColor**"> <type name="Gdk.Color" c:type="GdkColor*"/> </array> </parameter> <parameter name="n_colors" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for length of array</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </function> <function name="palette_to_string" c:identifier="gtk_color_selection_palette_to_string"> <doc xml:space="preserve">Encodes a palette as a string, useful for persistent storage.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">allocated string encoding the palette</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="colors" transfer-ownership="none"> <doc xml:space="preserve">an array of colors</doc> <array length="1" zero-terminated="0" c:type="GdkColor*"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </parameter> <parameter name="n_colors" transfer-ownership="none"> <doc xml:space="preserve">length of the array</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="set_change_palette_with_screen_hook" c:identifier="gtk_color_selection_set_change_palette_with_screen_hook" version="2.2" introspectable="0"> <doc xml:space="preserve">Installs a global function to be called whenever the user tries to modify the palette in a color selection. This function should save the new palette contents, and update the #GtkSettings:gtk-color-palette GtkSettings property so all GtkColorSelection widgets will be modified.</doc> <return-value> <doc xml:space="preserve">the previous change palette hook (that was replaced)</doc> <type name="ColorSelectionChangePaletteWithScreenFunc" c:type="GtkColorSelectionChangePaletteWithScreenFunc"/> </return-value> <parameters> <parameter name="func" transfer-ownership="none"> <doc xml:space="preserve">a function to call when the custom palette needs saving</doc> <type name="ColorSelectionChangePaletteWithScreenFunc" c:type="GtkColorSelectionChangePaletteWithScreenFunc"/> </parameter> </parameters> </function> <virtual-method name="color_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="color_selection" transfer-ownership="none"> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_current_alpha" c:identifier="gtk_color_selection_get_current_alpha"> <doc xml:space="preserve">Returns the current alpha value.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">an integer between 0 and 65535</doc> <type name="guint16" c:type="guint16"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> </parameters> </method> <method name="get_current_color" c:identifier="gtk_color_selection_get_current_color" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets @color to be the current color in the GtkColorSelection widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_selection_get_current_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkColor to fill in with the current color</doc> <type name="Gdk.Color" c:type="GdkColor*"/> </parameter> </parameters> </method> <method name="get_current_rgba" c:identifier="gtk_color_selection_get_current_rgba" version="3.0"> <doc xml:space="preserve">Sets @rgba to be the current color in the GtkColorSelection widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="rgba" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA to fill in with the current color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_has_opacity_control" c:identifier="gtk_color_selection_get_has_opacity_control"> <doc xml:space="preserve">Determines whether the colorsel has an opacity control.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the @colorsel has an opacity control, %FALSE if it does't</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> </parameters> </method> <method name="get_has_palette" c:identifier="gtk_color_selection_get_has_palette"> <doc xml:space="preserve">Determines whether the color selector has a color palette.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the selector has a palette, %FALSE if it hasn't</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> </parameters> </method> <method name="get_previous_alpha" c:identifier="gtk_color_selection_get_previous_alpha"> <doc xml:space="preserve">Returns the previous alpha value.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">an integer between 0 and 65535</doc> <type name="guint16" c:type="guint16"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> </parameters> </method> <method name="get_previous_color" c:identifier="gtk_color_selection_get_previous_color" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Fills @color in with the original color value.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_selection_get_previous_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkColor to fill in with the original color value</doc> <type name="Gdk.Color" c:type="GdkColor*"/> </parameter> </parameters> </method> <method name="get_previous_rgba" c:identifier="gtk_color_selection_get_previous_rgba" version="3.0"> <doc xml:space="preserve">Fills @rgba in with the original color value.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="rgba" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA to fill in with the original color value</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="is_adjusting" c:identifier="gtk_color_selection_is_adjusting"> <doc xml:space="preserve">Gets the current state of the @colorsel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the user is currently dragging a color around, and %FALSE if the selection has stopped</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> </parameters> </method> <method name="set_current_alpha" c:identifier="gtk_color_selection_set_current_alpha"> <doc xml:space="preserve">Sets the current opacity to be @alpha. The first time this is called, it will also set the original opacity to be @alpha too.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="alpha" transfer-ownership="none"> <doc xml:space="preserve">an integer between 0 and 65535</doc> <type name="guint16" c:type="guint16"/> </parameter> </parameters> </method> <method name="set_current_color" c:identifier="gtk_color_selection_set_current_color" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the current color to be @color. The first time this is called, it will also set the original color to be @color too.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_selection_set_current_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">a #GdkColor to set the current color with</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="set_current_rgba" c:identifier="gtk_color_selection_set_current_rgba" version="3.0"> <doc xml:space="preserve">Sets the current color to be @rgba. The first time this is called, it will also set the original color to be @rgba too.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="rgba" transfer-ownership="none"> <doc xml:space="preserve">A #GdkRGBA to set the current color with</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <method name="set_has_opacity_control" c:identifier="gtk_color_selection_set_has_opacity_control"> <doc xml:space="preserve">Sets the @colorsel to use or not use opacity.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="has_opacity" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @colorsel can set the opacity, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_has_palette" c:identifier="gtk_color_selection_set_has_palette"> <doc xml:space="preserve">Shows and hides the palette based upon the value of @has_palette.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="has_palette" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if palette is to be visible, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_previous_alpha" c:identifier="gtk_color_selection_set_previous_alpha"> <doc xml:space="preserve">Sets the âpreviousâ alpha to be @alpha. This function should be called with some hesitations, as it might seem confusing to have that alpha change.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="alpha" transfer-ownership="none"> <doc xml:space="preserve">an integer between 0 and 65535</doc> <type name="guint16" c:type="guint16"/> </parameter> </parameters> </method> <method name="set_previous_color" c:identifier="gtk_color_selection_set_previous_color" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the âpreviousâ color to be @color. This function should be called with some hesitations, as it might seem confusing to have that color change. Calling gtk_color_selection_set_current_color() will also set this color the first time it is called.</doc> <doc-deprecated xml:space="preserve">Use gtk_color_selection_set_previous_rgba() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">a #GdkColor to set the previous color with</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="set_previous_rgba" c:identifier="gtk_color_selection_set_previous_rgba" version="3.0"> <doc xml:space="preserve">Sets the âpreviousâ color to be @rgba. This function should be called with some hesitations, as it might seem confusing to have that color change. Calling gtk_color_selection_set_current_rgba() will also set this color the first time it is called.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelection</doc> <type name="ColorSelection" c:type="GtkColorSelection*"/> </instance-parameter> <parameter name="rgba" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA to set the previous color with</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <property name="current-alpha" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="current-color" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The current GdkColor color.</doc> <doc-deprecated xml:space="preserve">Use #GtkColorSelection:current-rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="current-rgba" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The current RGBA color.</doc> <type name="Gdk.RGBA"/> </property> <property name="has-opacity-control" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-palette" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Box" c:type="GtkBox"/> </field> <field name="private_data" readable="0" private="1"> <type name="ColorSelectionPrivate" c:type="GtkColorSelectionPrivate*"/> </field> <glib:signal name="color-changed" when="first"> <doc xml:space="preserve">This signal is emitted when the color changes in the #GtkColorSelection according to its update policy.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <callback name="ColorSelectionChangePaletteFunc" c:type="GtkColorSelectionChangePaletteFunc" deprecated="1" deprecated-version="3.4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="colors" transfer-ownership="none"> <doc xml:space="preserve">Array of colors</doc> <array length="1" zero-terminated="0" c:type="GdkColor*"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </parameter> <parameter name="n_colors" transfer-ownership="none"> <doc xml:space="preserve">Number of colors in the array</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> <callback name="ColorSelectionChangePaletteWithScreenFunc" c:type="GtkColorSelectionChangePaletteWithScreenFunc" version="2.2" deprecated="1" deprecated-version="3.4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none"> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> <parameter name="colors" transfer-ownership="none"> <doc xml:space="preserve">Array of colors</doc> <array length="2" zero-terminated="0" c:type="GdkColor*"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </parameter> <parameter name="n_colors" transfer-ownership="none"> <doc xml:space="preserve">Number of colors in the array</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> <record name="ColorSelectionClass" c:type="GtkColorSelectionClass" glib:is-gtype-struct-for="ColorSelection"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="color_changed"> <callback name="color_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="color_selection" transfer-ownership="none"> <type name="ColorSelection" c:type="GtkColorSelection*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="ColorSelectionDialog" c:symbol-prefix="color_selection_dialog" c:type="GtkColorSelectionDialog" parent="Dialog" glib:type-name="GtkColorSelectionDialog" glib:get-type="gtk_color_selection_dialog_get_type" glib:type-struct="ColorSelectionDialogClass"> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_color_selection_dialog_new"> <doc xml:space="preserve">Creates a new #GtkColorSelectionDialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelectionDialog.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">a string containing the title text for the dialog.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_color_selection" c:identifier="gtk_color_selection_dialog_get_color_selection" version="2.14"> <doc xml:space="preserve">Retrieves the #GtkColorSelection widget embedded in the dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the embedded #GtkColorSelection</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="colorsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkColorSelectionDialog</doc> <type name="ColorSelectionDialog" c:type="GtkColorSelectionDialog*"/> </instance-parameter> </parameters> </method> <property name="cancel-button" transfer-ownership="none"> <type name="Widget"/> </property> <property name="color-selection" transfer-ownership="none"> <type name="Widget"/> </property> <property name="help-button" transfer-ownership="none"> <type name="Widget"/> </property> <property name="ok-button" transfer-ownership="none"> <type name="Widget"/> </property> <field name="parent_instance"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv" readable="0" private="1"> <type name="ColorSelectionDialogPrivate" c:type="GtkColorSelectionDialogPrivate*"/> </field> </class> <record name="ColorSelectionDialogClass" c:type="GtkColorSelectionDialogClass" glib:is-gtype-struct-for="ColorSelectionDialog"> <field name="parent_class"> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ColorSelectionDialogPrivate" c:type="GtkColorSelectionDialogPrivate" disguised="1"> </record> <record name="ColorSelectionPrivate" c:type="GtkColorSelectionPrivate" disguised="1"> </record> <class name="ComboBox" c:symbol-prefix="combo_box" c:type="GtkComboBox" parent="Bin" glib:type-name="GtkComboBox" glib:get-type="gtk_combo_box_get_type" glib:type-struct="ComboBoxClass"> <doc xml:space="preserve">A GtkComboBox is a widget that allows the user to choose from a list of valid choices. The GtkComboBox displays the selected choice. When activated, the GtkComboBox displays a popup which allows the user to make a new choice. The style in which the selected value is displayed, and the style of the popup is determined by the current theme. It may be similar to a Windows-style combo box. The GtkComboBox uses the model-view pattern; the list of valid choices is specified in the form of a tree model, and the display of the choices can be adapted to the data in the model by using cell renderers, as you would in a tree view. This is possible since GtkComboBox implements the #GtkCellLayout interface. The tree model holding the valid choices is not restricted to a flat list, it can be a real tree, and the popup will reflect the tree structure. To allow the user to enter values not in the model, the âhas-entryâ property allows the GtkComboBox to contain a #GtkEntry. This entry can be accessed by calling gtk_bin_get_child() on the combo box. For a simple list of textual choices, the model-view API of GtkComboBox can be a bit overwhelming. In this case, #GtkComboBoxText offers a simple alternative. Both GtkComboBox and #GtkComboBoxText can contain an entry. # CSS nodes |[<!-- language="plain" --> combobox âââ box.linked â â°ââ button.combo â â°ââ box â âââ cellview â â°ââ arrow â°ââ window.popup ]| A normal combobox contains a box with the .linked class, a button with the .combo class and inside those buttons, there are a cellview and an arrow. |[<!-- language="plain" --> combobox âââ box.linked â âââ entry.combo â â°ââ button.combo â â°ââ box â â°ââ arrow â°ââ window.popup ]| A GtkComboBox with an entry has a single CSS node with name combobox. It contains a box with the .linked class. That box contains an entry and a button, both with the .combo class added. The button also contains another node with name arrow.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="CellEditable"/> <implements name="CellLayout"/> <constructor name="new" c:identifier="gtk_combo_box_new" version="2.4"> <doc xml:space="preserve">Creates a new empty #GtkComboBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkComboBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_area" c:identifier="gtk_combo_box_new_with_area"> <doc xml:space="preserve">Creates a new empty #GtkComboBox using @area to layout cells.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkComboBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellArea to use to layout cell renderers</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> </parameters> </constructor> <constructor name="new_with_area_and_entry" c:identifier="gtk_combo_box_new_with_area_and_entry"> <doc xml:space="preserve">Creates a new empty #GtkComboBox with an entry. The new combo box will use @area to layout cells.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkComboBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellArea to use to layout cell renderers</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> </parameters> </constructor> <constructor name="new_with_entry" c:identifier="gtk_combo_box_new_with_entry" version="2.24"> <doc xml:space="preserve">Creates a new empty #GtkComboBox with an entry.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkComboBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_model" c:identifier="gtk_combo_box_new_with_model" version="2.4"> <doc xml:space="preserve">Creates a new #GtkComboBox with the model initialized to @model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkComboBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModel.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </constructor> <constructor name="new_with_model_and_entry" c:identifier="gtk_combo_box_new_with_model_and_entry" version="2.24"> <doc xml:space="preserve">Creates a new empty #GtkComboBox with an entry and with the model initialized to @model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkComboBox</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </constructor> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="format_entry_text"> <return-value transfer-ownership="full"> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="get_active" c:identifier="gtk_combo_box_get_active" version="2.4"> <doc xml:space="preserve">Returns the index of the currently active item, or -1 if thereâs no 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 #GtkTreePath of the active item.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">An integer which is the index of the currently active item, or -1 if thereâs no active item.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_active_id" c:identifier="gtk_combo_box_get_active_id" version="3.0"> <doc xml:space="preserve">Returns the ID of the active row of @combo_box. This value is taken from the active row and the column specified by the #GtkComboBox:id-column property of @combo_box (see gtk_combo_box_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 #GtkComboBox: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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the ID of the active row, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_active_iter" c:identifier="gtk_combo_box_get_active_iter" version="2.4"> <doc xml:space="preserve">Sets @iter to point to the currently active item, if any item is active. Otherwise, @iter is left unchanged.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter was set, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="get_add_tearoffs" c:identifier="gtk_combo_box_get_add_tearoffs" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the current value of the :add-tearoffs property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current value of the :add-tearoffs property.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_button_sensitivity" c:identifier="gtk_combo_box_get_button_sensitivity" version="2.14"> <doc xml:space="preserve">Returns whether the combo box sets the dropdown button sensitive or not when there are no items in the model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%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.</doc> <type name="SensitivityType" c:type="GtkSensitivityType"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_column_span_column" c:identifier="gtk_combo_box_get_column_span_column" version="2.6"> <doc xml:space="preserve">Returns the column with column span information for @combo_box.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the column span column.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_entry_text_column" c:identifier="gtk_combo_box_get_entry_text_column" version="2.24"> <doc xml:space="preserve">Returns the column which @combo_box is using to get the strings from to display in the internal entry.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A column in the data source model of @combo_box.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox.</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_focus_on_click" c:identifier="gtk_combo_box_get_focus_on_click" version="2.6" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Returns whether the combo box grabs focus when it is clicked with the mouse. See gtk_combo_box_set_focus_on_click().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_focus_on_click() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the combo box grabs focus when it is clicked with the mouse.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="combo" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_has_entry" c:identifier="gtk_combo_box_get_has_entry" version="2.24"> <doc xml:space="preserve">Returns whether the combo box has an entry.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether there is an entry in @combo_box.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_id_column" c:identifier="gtk_combo_box_get_id_column" version="3.0"> <doc xml:space="preserve">Returns the column which @combo_box is using to get string IDs for values from.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A column in the data source model of @combo_box.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_model" c:identifier="gtk_combo_box_get_model" version="2.4"> <doc xml:space="preserve">Returns the #GtkTreeModel which is acting as data source for @combo_box.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModel which was passed during construction.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_popup_accessible" c:identifier="gtk_combo_box_get_popup_accessible" version="2.6"> <doc xml:space="preserve">Gets the accessible object corresponding to the combo boxâs popup. This function is mostly intended for use by accessibility technologies; applications should have little use for it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the accessible object corresponding to the combo boxâs popup.</doc> <type name="Atk.Object" c:type="AtkObject*"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_popup_fixed_width" c:identifier="gtk_combo_box_get_popup_fixed_width" version="3.0"> <doc xml:space="preserve">Gets whether the popup uses a fixed width matching the allocated width of the combo box.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the popup uses a fixed width</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_row_separator_func" c:identifier="gtk_combo_box_get_row_separator_func" version="2.6" introspectable="0"> <doc xml:space="preserve">Returns the current row separator function.</doc> <return-value> <doc xml:space="preserve">the current row separator function.</doc> <type name="TreeViewRowSeparatorFunc" c:type="GtkTreeViewRowSeparatorFunc"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_row_span_column" c:identifier="gtk_combo_box_get_row_span_column" version="2.6"> <doc xml:space="preserve">Returns the column with row span information for @combo_box.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the row span column.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_combo_box_get_title" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the current title of the menu in tearoff mode. See gtk_combo_box_set_add_tearoffs().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the menuâs title in tearoff mode. This is an internal copy of the string which must not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="get_wrap_width" c:identifier="gtk_combo_box_get_wrap_width" version="2.6"> <doc xml:space="preserve">Returns the wrap width which is used to determine the number of columns for the popup menu. If the wrap width is larger than 1, the combo box is in table mode.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the wrap width.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="popdown" c:identifier="gtk_combo_box_popdown" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="popup" c:identifier="gtk_combo_box_popup" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> </parameters> </method> <method name="popup_for_device" c:identifier="gtk_combo_box_popup_for_device" version="3.0"> <doc xml:space="preserve">Pops up the menu or dropdown list of @combo_box, the popup window will be grabbed so only @device and its associated pointer/keyboard are the only #GdkDevices able to send events to it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> </parameters> </method> <method name="set_active" c:identifier="gtk_combo_box_set_active" version="2.4"> <doc xml:space="preserve">Sets the active item of @combo_box to be the item at @index.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">An index in the model passed during construction, or -1 to have no active item</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_active_id" c:identifier="gtk_combo_box_set_active_id" version="3.0"> <doc xml:space="preserve">Changes the active row of @combo_box to the one that has an ID equal to @active_id, or unsets the active row if @active_id is %NULL. Rows having a %NULL ID string cannot be made active by this function. If the #GtkComboBox:id-column property of @combo_box is unset or if no row has the given ID then the function does nothing and returns %FALSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%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.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="active_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the ID of the row to select, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_active_iter" c:identifier="gtk_combo_box_set_active_iter" version="2.4"> <doc xml:space="preserve">Sets the current active item to be the one referenced by @iter, or unsets the active item if @iter is %NULL.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="set_add_tearoffs" c:identifier="gtk_combo_box_set_add_tearoffs" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets whether the popup menu should have a tearoff menu item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="add_tearoffs" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to add tearoff menu items</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_button_sensitivity" c:identifier="gtk_combo_box_set_button_sensitivity" version="2.14"> <doc xml:space="preserve">Sets whether the dropdown button of the combo box should be always sensitive (%GTK_SENSITIVITY_ON), never sensitive (%GTK_SENSITIVITY_OFF) or only if there is at least one item to display (%GTK_SENSITIVITY_AUTO).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="sensitivity" transfer-ownership="none"> <doc xml:space="preserve">specify the sensitivity of the dropdown button</doc> <type name="SensitivityType" c:type="GtkSensitivityType"/> </parameter> </parameters> </method> <method name="set_column_span_column" c:identifier="gtk_combo_box_set_column_span_column" version="2.4"> <doc xml:space="preserve">Sets the column with column span information for @combo_box to be @column_span. The column span column contains integers which indicate how many columns an item should span.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="column_span" transfer-ownership="none"> <doc xml:space="preserve">A column in the model passed during construction</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_entry_text_column" c:identifier="gtk_combo_box_set_entry_text_column" version="2.24"> <doc xml:space="preserve">Sets the model column which @combo_box should use to get strings from to be @text_column. 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 #GtkComboBox:has-entry as %TRUE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="text_column" transfer-ownership="none"> <doc xml:space="preserve">A column in @model to get the strings from for the internal entry</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_focus_on_click" c:identifier="gtk_combo_box_set_focus_on_click" version="2.6" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Sets whether the combo box will 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.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_focus_on_click() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="focus_on_click" transfer-ownership="none"> <doc xml:space="preserve">whether the combo box grabs focus when clicked with the mouse</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_id_column" c:identifier="gtk_combo_box_set_id_column" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="id_column" transfer-ownership="none"> <doc xml:space="preserve">A column in @model to get string IDs for values from</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_model" c:identifier="gtk_combo_box_set_model" version="2.4"> <doc xml:space="preserve">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 gtk_cell_layout_clear() yourself if you need to set up different cell renderers for the new model.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </method> <method name="set_popup_fixed_width" c:identifier="gtk_combo_box_set_popup_fixed_width" version="3.0"> <doc xml:space="preserve">Specifies whether the popupâs width should be a fixed width matching the allocated width of the combo box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="fixed" transfer-ownership="none"> <doc xml:space="preserve">whether to use a fixed popup width</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_row_separator_func" c:identifier="gtk_combo_box_set_row_separator_func" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">a #GtkTreeViewRowSeparatorFunc</doc> <type name="TreeViewRowSeparatorFunc" c:type="GtkTreeViewRowSeparatorFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">destroy notifier for @data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_row_span_column" c:identifier="gtk_combo_box_set_row_span_column" version="2.4"> <doc xml:space="preserve">Sets the column with row span information for @combo_box to be @row_span. The row span column contains integers which indicate how many rows an item should span.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox.</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="row_span" transfer-ownership="none"> <doc xml:space="preserve">A column in the model passed during construction.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_combo_box_set_title" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the menuâs title in tearoff mode.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">a title for the menu in tearoff mode</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_wrap_width" c:identifier="gtk_combo_box_set_wrap_width" version="2.4"> <doc xml:space="preserve">Sets the wrap width of @combo_box to be @width. The wrap width is basically the preferred number of columns when you want the popup to be layed out in a table.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBox" c:type="GtkComboBox*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">Preferred number of columns</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="active" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkTreePath of the active item.</doc> <type name="gint" c:type="gint"/> </property> <property name="active-id" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The value of the ID column of the active row.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="add-tearoffs" version="2.6" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The add-tearoffs property controls whether generated menus have tearoff menu items. Note that this only affects menu style combo boxes.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="button-sensitivity" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the dropdown button is sensitive when the model is empty.</doc> <type name="SensitivityType"/> </property> <property name="cell-area" version="3.0" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellArea used to layout cell renderers for this combo box. If no area is specified when creating the combo box with gtk_combo_box_new_with_area() a horizontally oriented #GtkCellAreaBox will be used.</doc> <type name="CellArea"/> </property> <property name="column-span-column" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If this is set to a non-negative value, it must be the index of a column of type %G_TYPE_INT in the model. The value in that column for each item will determine how many columns that item will span in the popup. Therefore, values in this column must be greater than zero, and the sum of an itemâs column position + span should not exceed #GtkComboBox:wrap-width.</doc> <type name="gint" c:type="gint"/> </property> <property name="entry-text-column" version="2.24" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The column in the combo box's model to associate with strings from the entry if the combo was created with #GtkComboBox:has-entry = %TRUE.</doc> <type name="gint" c:type="gint"/> </property> <property name="has-entry" version="2.24" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the combo box has an entry.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-frame" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The has-frame property controls whether a frame is drawn around the entry.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="id-column" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The column in the combo box's model that provides string IDs for the values in the model, if != -1.</doc> <type name="gint" c:type="gint"/> </property> <property name="model" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The model from which the combo box takes the values shown in the list.</doc> <type name="TreeModel"/> </property> <property name="popup-fixed-width" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the popup's width should be a fixed width matching the allocated width of the combo box.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="popup-shown" version="2.10" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="row-span-column" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If this is set to a non-negative value, it must be the index of a column of type %G_TYPE_INT in the model. The value in that column for each item will determine how many rows that item will span in the popup. Therefore, values in this column must be greater than zero.</doc> <type name="gint" c:type="gint"/> </property> <property name="tearoff-title" version="2.10" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A title that may be displayed by the window manager when the popup is torn-off.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="wrap-width" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If wrap-width is set to a positive value, items in the popup will be laid out along multiple columns, starting a new row on reaching the wrap width.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent_instance"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="ComboBoxPrivate" c:type="GtkComboBoxPrivate*"/> </field> <glib:signal name="changed" when="last" version="2.4"> <doc xml:space="preserve">The changed signal is 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 gtk_combo_box_set_active_iter(). It will also be emitted while typing into the entry of a combo box with an entry.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="format-entry-text" when="last" version="3.4"> <doc xml:space="preserve">For combo boxes that are created with an entry (See GtkComboBox:has-entry). A signal which allows you to change how the text displayed in a combo box's entry is displayed. 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 GtkComboBox::entry-text-column model column. Here's an example signal handler which fetches data from the model and displays it in the entry. |[<!-- language="C" --> static gchar* format_entry_text_callback (GtkComboBox *combo, const gchar *path, gpointer user_data) { GtkTreeIter iter; GtkTreeModel model; gdouble value; model = gtk_combo_box_get_model (combo); gtk_tree_model_get_iter_from_string (model, &iter, path); gtk_tree_model_get (model, &iter, THE_DOUBLE_VALUE_COLUMN, &value, -1); return g_strdup_printf ("%g", value); } ]|</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated string representing @path for the current GtkComboBox model.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the GtkTreePath string from the combo box's current model to format text for</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-active" when="last" action="1" version="2.12"> <doc xml:space="preserve">The ::move-active signal is a [keybinding signal][GtkBindingSignal] which gets emitted to move the active selection.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="scroll_type" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollType</doc> <type name="ScrollType"/> </parameter> </parameters> </glib:signal> <glib:signal name="popdown" when="last" action="1" version="2.12"> <doc xml:space="preserve">The ::popdown signal is a [keybinding signal][GtkBindingSignal] which gets emitted to popdown the combo box list. The default bindings for this signal are Alt+Up and Escape.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="popup" when="last" action="1" version="2.12"> <doc xml:space="preserve">The ::popup signal is a [keybinding signal][GtkBindingSignal] which gets emitted to popup the combo box list. The default binding for this signal is Alt+Down.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="ComboBoxAccessible" c:symbol-prefix="combo_box_accessible" c:type="GtkComboBoxAccessible" parent="ContainerAccessible" glib:type-name="GtkComboBoxAccessible" glib:get-type="gtk_combo_box_accessible_get_type" glib:type-struct="ComboBoxAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="ComboBoxAccessiblePrivate" c:type="GtkComboBoxAccessiblePrivate*"/> </field> </class> <record name="ComboBoxAccessibleClass" c:type="GtkComboBoxAccessibleClass" glib:is-gtype-struct-for="ComboBoxAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="ComboBoxAccessiblePrivate" c:type="GtkComboBoxAccessiblePrivate" disguised="1"> </record> <record name="ComboBoxClass" c:type="GtkComboBoxClass" glib:is-gtype-struct-for="ComboBox"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="combo_box" transfer-ownership="none"> <type name="ComboBox" c:type="GtkComboBox*"/> </parameter> </parameters> </callback> </field> <field name="format_entry_text"> <callback name="format_entry_text"> <return-value transfer-ownership="full"> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="combo_box" transfer-ownership="none"> <type name="ComboBox" c:type="GtkComboBox*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ComboBoxPrivate" c:type="GtkComboBoxPrivate" disguised="1"> </record> <class name="ComboBoxText" c:symbol-prefix="combo_box_text" c:type="GtkComboBoxText" parent="ComboBox" glib:type-name="GtkComboBoxText" glib:get-type="gtk_combo_box_text_get_type" glib:type-struct="ComboBoxTextClass"> <doc xml:space="preserve">A GtkComboBoxText is a simple variant of #GtkComboBox that hides the model-view complexity for simple text-only use cases. To create a GtkComboBoxText, use gtk_combo_box_text_new() or gtk_combo_box_text_new_with_entry(). You can add items to a GtkComboBoxText with gtk_combo_box_text_append_text(), gtk_combo_box_text_insert_text() or gtk_combo_box_text_prepend_text() and remove options with gtk_combo_box_text_remove(). If the GtkComboBoxText contains an entry (via the âhas-entryâ property), its contents can be retrieved using gtk_combo_box_text_get_active_text(). The entry itself can be accessed by calling gtk_bin_get_child() on the combo box. You should not call gtk_combo_box_set_model() or attempt to pack more cells into this combo box via its GtkCellLayout interface. # GtkComboBoxText as GtkBuildable The GtkComboBoxText implementation of the GtkBuildable interface supports adding items directly using the <items> element and specifying <item> elements for each item. Each <item> element can specify the âidâ corresponding to the appended text and also supports the regular translation attributes âtranslatableâ, âcontextâ and âcommentsâ. Here is a UI definition fragment specifying GtkComboBoxText items: |[ <object class="GtkComboBoxText"> <items> <item translatable="yes" id="factory">Factory</item> <item translatable="yes" id="home">Home</item> <item translatable="yes" id="subway">Subway</item> </items> </object> ]| # CSS nodes |[<!-- language="plain" --> combobox â°ââ box.linked âââ entry.combo âââ button.combo â°ââ window.popup ]| GtkComboBoxText has a single CSS node with name combobox. It adds the style class .combo to the main CSS nodes of its entry and button children, and the .linked class to the node of its internal box.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="CellEditable"/> <implements name="CellLayout"/> <constructor name="new" c:identifier="gtk_combo_box_text_new" version="2.24"> <doc xml:space="preserve">Creates a new #GtkComboBoxText, which is a #GtkComboBox just displaying strings.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkComboBoxText</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_entry" c:identifier="gtk_combo_box_text_new_with_entry" version="2.24"> <doc xml:space="preserve">Creates a new #GtkComboBoxText, which is a #GtkComboBox just displaying strings. The combo box created by this function has an entry.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkComboBoxText</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="append" c:identifier="gtk_combo_box_text_append" version="2.24"> <doc xml:space="preserve">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 gtk_combo_box_text_insert() with a position of -1.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBoxText</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string ID for this value, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">A string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="append_text" c:identifier="gtk_combo_box_text_append_text" version="2.24"> <doc xml:space="preserve">Appends @text to the list of strings stored in @combo_box. This is the same as calling gtk_combo_box_text_insert_text() with a position of -1.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBoxText</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">A string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_active_text" c:identifier="gtk_combo_box_text_get_active_text" version="2.24"> <doc xml:space="preserve">Returns the currently active string in @combo_box, or %NULL if none is selected. If @combo_box contains an entry, this function will return its contents (which will not necessarily be an item from the list).</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated string containing the currently active text. Must be freed with g_free().</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBoxText</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> </parameters> </method> <method name="insert" c:identifier="gtk_combo_box_text_insert" version="3.0"> <doc xml:space="preserve">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 #GtkComboBox:id-column. If @position is negative then @text is appended.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBoxText</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">An index to insert @text</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string ID for this value, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">A string to display</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="insert_text" c:identifier="gtk_combo_box_text_insert_text" version="2.24"> <doc xml:space="preserve">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 gtk_combo_box_text_insert() with a %NULL ID string.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBoxText</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">An index to insert @text</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">A string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="prepend" c:identifier="gtk_combo_box_text_prepend" version="2.24"> <doc xml:space="preserve">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 gtk_combo_box_text_insert() with a position of 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string ID for this value, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">a string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="prepend_text" c:identifier="gtk_combo_box_text_prepend_text" version="2.24"> <doc xml:space="preserve">Prepends @text to the list of strings stored in @combo_box. This is the same as calling gtk_combo_box_text_insert_text() with a position of 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">A string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="remove" c:identifier="gtk_combo_box_text_remove" version="2.24"> <doc xml:space="preserve">Removes the string at @position from @combo_box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBox</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">Index of the item to remove</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="remove_all" c:identifier="gtk_combo_box_text_remove_all" version="3.0"> <doc xml:space="preserve">Removes all the text entries from the combo box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="combo_box" transfer-ownership="none"> <doc xml:space="preserve">A #GtkComboBoxText</doc> <type name="ComboBoxText" c:type="GtkComboBoxText*"/> </instance-parameter> </parameters> </method> <field name="parent_instance" readable="0" private="1"> <type name="ComboBox" c:type="GtkComboBox"/> </field> <field name="priv" readable="0" private="1"> <type name="ComboBoxTextPrivate" c:type="GtkComboBoxTextPrivate*"/> </field> </class> <record name="ComboBoxTextClass" c:type="GtkComboBoxTextClass" glib:is-gtype-struct-for="ComboBoxText"> <field name="parent_class"> <type name="ComboBoxClass" c:type="GtkComboBoxClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ComboBoxTextPrivate" c:type="GtkComboBoxTextPrivate" disguised="1"> </record> <class name="Container" c:symbol-prefix="container" c:type="GtkContainer" parent="Widget" abstract="1" glib:type-name="GtkContainer" glib:get-type="gtk_container_get_type" glib:type-struct="ContainerClass"> <doc xml:space="preserve">A GTK+ user interface is constructed by nesting widgets inside widgets. Container widgets are the inner nodes in the resulting tree of widgets: they contain other widgets. So, for example, you might have a #GtkWindow containing a #GtkFrame containing a #GtkLabel. If you wanted an image instead of a textual label inside the frame, you might replace the #GtkLabel widget with a #GtkImage widget. There are two major kinds of container widgets in GTK+. Both are subclasses of the abstract GtkContainer base class. The first type of container widget has a single child widget and derives from #GtkBin. These containers are decorators, which add some kind of functionality to the child. For example, a #GtkButton makes its child into a clickable button; a #GtkFrame draws a frame around its child and a #GtkWindow places its child widget inside a top-level window. The second type of container can have more than one child; its purpose is to manage layout. This means that these containers assign sizes and positions to their children. For example, a #GtkHBox arranges its children in a horizontal row, and a #GtkGrid arranges the widgets it contains in a two-dimensional grid. For implementations of #GtkContainer the virtual method #GtkContainerClass.forall() is always required, since it's used for drawing and other internal operations on the children. If the #GtkContainer implementation expect to have non internal children it's needed to implement both #GtkContainerClass.add() and #GtkContainerClass.remove(). If the GtkContainer implementation has internal children, they should be added with gtk_widget_set_parent() on init() and removed with gtk_widget_unparent() in the #GtkWidgetClass.destroy() implementation. See more about implementing custom widgets at https://wiki.gnome.org/HowDoI/CustomWidgets # Height for width geometry management GTK+ uses a height-for-width (and width-for-height) geometry management system. Height-for-width means that a widget can change how much vertical space it needs, depending on the amount of horizontal space that it is given (and similar for width-for-height). There are some things to keep in mind when implementing container widgets that make use of GTK+âs height for width geometry management system. First, itâs important to note that a container must prioritize one of its dimensions, that is to say that a widget or container can only have a #GtkSizeRequestMode that is %GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH or %GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT. However, every widget and container must be able to respond to the APIs for both dimensions, i.e. even if a widget has a request mode that is height-for-width, it is possible that its parent will request its sizes using the width-for-height APIs. To ensure that everything works properly, here are some guidelines to follow when implementing height-for-width (or width-for-height) containers. Each request mode involves 2 virtual methods. Height-for-width apis run through gtk_widget_get_preferred_width() and then through gtk_widget_get_preferred_height_for_width(). When handling requests in the opposite #GtkSizeRequestMode it is important that every widget request at least enough space to display all of its content at all times. When gtk_widget_get_preferred_height() is called on a container that is height-for-width, the container must return the height for its minimum width. This is easily achieved by simply calling the reverse apis implemented for itself as follows: |[<!-- language="C" --> static void foo_container_get_preferred_height (GtkWidget *widget, gint *min_height, gint *nat_height) { if (i_am_in_height_for_width_mode) { gint min_width; GTK_WIDGET_GET_CLASS (widget)->get_preferred_width (widget, &min_width, NULL); GTK_WIDGET_GET_CLASS (widget)->get_preferred_height_for_width (widget, min_width, min_height, nat_height); } else { ... many containers support both request modes, execute the real width-for-height request here by returning the collective heights of all widgets that are stacked vertically (or whatever is appropriate for this container) ... } } ]| Similarly, when gtk_widget_get_preferred_width_for_height() is called for a container or widget that is height-for-width, it then only needs to return the base minimum width like so: |[<!-- language="C" --> static void foo_container_get_preferred_width_for_height (GtkWidget *widget, gint for_height, gint *min_width, gint *nat_width) { if (i_am_in_height_for_width_mode) { GTK_WIDGET_GET_CLASS (widget)->get_preferred_width (widget, min_width, nat_width); } else { ... execute the real width-for-height request here based on the required width of the children collectively if the container were to be allocated the said height ... } } ]| Height for width requests are generally implemented in terms of a virtual allocation of widgets in the input orientation. Assuming an height-for-width request mode, a container would implement the get_preferred_height_for_width() virtual function by first calling gtk_widget_get_preferred_width() for each of its children. For each potential group of children that are lined up horizontally, the values returned by gtk_widget_get_preferred_width() should be collected in an array of #GtkRequestedSize structures. Any child spacing should be removed from the input @for_width and then the collective size should be allocated using the gtk_distribute_natural_allocation() convenience function. The container will then move on to request the preferred height for each child by using gtk_widget_get_preferred_height_for_width() and using the sizes stored in the #GtkRequestedSize array. To allocate a height-for-width container, itâs again important to consider that a container must prioritize one dimension over the other. So if a container is a height-for-width container it must first allocate all widgets horizontally using a #GtkRequestedSize array and gtk_distribute_natural_allocation() and then add any extra space (if and where appropriate) for the widget to expand. After adding all the expand space, the container assumes it was allocated sufficient height to fit all of its content. At this time, the container must use the total horizontal sizes of each widget to request the height-for-width of each of its children and store the requests in a #GtkRequestedSize array for any widgets that stack vertically (for tabular containers this can be generalized into the heights and widths of rows and columns). The vertical space must then again be distributed using gtk_distribute_natural_allocation() while this time considering the allocated height of the widget minus any vertical spacing that the container adds. Then vertical expand space should be added where appropriate and available and the container should go on to actually allocating the child widgets. See [GtkWidgetâs geometry management section][geometry-management] to learn more about implementing height-for-width geometry management for widgets. # Child properties GtkContainer introduces child properties. These are object properties that are not specific to either the container or the contained widget, but rather to their relation. Typical examples of child properties are the position or pack-type of a widget which is contained in a #GtkBox. Use gtk_container_class_install_child_property() to install child properties for a container class and gtk_container_class_find_child_property() or gtk_container_class_list_child_properties() to get information about existing child properties. To set the value of a child property, use gtk_container_child_set_property(), gtk_container_child_set() or gtk_container_child_set_valist(). To obtain the value of a child property, use gtk_container_child_get_property(), gtk_container_child_get() or gtk_container_child_get_valist(). To emit notification about child property changes, use gtk_widget_child_notify(). # GtkContainer as GtkBuildable The GtkContainer implementation of the GtkBuildable interface supports a <packing> element for children, which can contain multiple <property> elements that specify child properties for the child. Since 2.16, child properties can also be marked as translatable using the same âtranslatableâ, âcommentsâ and âcontextâ attributes that are used for regular properties. Since 3.16, containers can have a <focus-chain> element containing multiple <widget> elements, one for each child that should be added to the focus chain. The ânameâ attribute gives the id of the widget. An example of these properties in UI definitions: |[ <object class="GtkBox"> <child> <object class="GtkEntry" id="entry1"/> <packing> <property name="pack-type">start</property> </packing> </child> <child> <object class="GtkEntry" id="entry2"/> </child> <focus-chain> <widget name="entry1"/> <widget name="entry2"/> </focus-chain> </object> ]|</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <virtual-method name="add" invoker="add"> <doc xml:space="preserve">Adds @widget to @container. Typically used for simple containers such as #GtkWindow, #GtkFrame, or #GtkButton; for more complicated layout containers such as #GtkBox or #GtkGrid, this function will pick default packing parameters that may not be correct. So consider functions such as gtk_box_pack_start() and gtk_grid_attach() as an alternative to gtk_container_add() in those cases. A widget may be added to only one container at a time; you canât place the same widget inside two different containers. Note that some containers, such as #GtkScrolledWindow or #GtkListBox, may add intermediate children between the added widget and the container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a widget to be placed inside @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="check_resize" invoker="check_resize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="child_type" invoker="child_type"> <doc xml:space="preserve">Returns the type of the children supported by the container. Note that this may return %G_TYPE_NONE to indicate that no more children can be added, e.g. for a #GtkPaned which already has two children.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GType.</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="composite_name"> <return-value transfer-ownership="full"> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="forall" invoker="forall"> <doc xml:space="preserve">Invokes @callback on each direct child of @container, including children that are considered âinternalâ (implementation details of the container). âInternalâ children generally werenât added by the user of the container, but were added by the container implementation itself. Most applications should use gtk_container_foreach(), rather than gtk_container_forall().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="include_internals" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="2"> <doc xml:space="preserve">a callback</doc> <type name="Callback" c:type="GtkCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">callback user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_child_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="property_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="GValue*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_path_for_child" invoker="get_path_for_child"> <doc xml:space="preserve">Returns a newly created widget path representing all the widget hierarchy from the toplevel down to and including @child.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="remove" invoker="remove"> <doc xml:space="preserve">Removes @widget from @container. @widget must be inside @container. Note that @container will own a reference to @widget, and that this may be the last reference held; so removing a widget from its container can destroy that widget. If you want to use @widget again, you need to add a reference to it before removing it from a container, using g_object_ref(). If you donât want to use @widget again itâs usually more efficient to simply destroy it directly using gtk_widget_destroy() since this will remove it from the container and help break any circular reference count cycles.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a current child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_child_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="property_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="const GValue*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_focus_child" invoker="set_focus_child"> <doc xml:space="preserve">Sets, or unsets if @child is %NULL, the focused child of @container. This function emits the GtkContainer::set_focus_child signal of @container. Implementations of #GtkContainer can override the default behaviour by overriding the class closure of this signal. This is function is mostly meant to be used by widgets. Applications can use gtk_widget_grab_focus() to manually set the focus to a specific widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <method name="add" c:identifier="gtk_container_add"> <doc xml:space="preserve">Adds @widget to @container. Typically used for simple containers such as #GtkWindow, #GtkFrame, or #GtkButton; for more complicated layout containers such as #GtkBox or #GtkGrid, this function will pick default packing parameters that may not be correct. So consider functions such as gtk_box_pack_start() and gtk_grid_attach() as an alternative to gtk_container_add() in those cases. A widget may be added to only one container at a time; you canât place the same widget inside two different containers. Note that some containers, such as #GtkScrolledWindow or #GtkListBox, may add intermediate children between the added widget and the container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a widget to be placed inside @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="add_with_properties" c:identifier="gtk_container_add_with_properties" introspectable="0"> <doc xml:space="preserve">Adds @widget to @container, setting child properties at the same time. See gtk_container_add() and gtk_container_child_set() for more details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a widget to be placed inside @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="first_prop_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first child property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated list of property names and values, starting with @first_prop_name</doc> <varargs/> </parameter> </parameters> </method> <method name="check_resize" c:identifier="gtk_container_check_resize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="child_get" c:identifier="gtk_container_child_get" introspectable="0"> <doc xml:space="preserve">Gets the values of one or more child properties for @child and @container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a widget which is a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="first_prop_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="child_get_property" c:identifier="gtk_container_child_get_property"> <doc xml:space="preserve">Gets the value of a child property for @child and @container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a widget which is a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">a location to return the value</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="child_get_valist" c:identifier="gtk_container_child_get_valist" introspectable="0"> <doc xml:space="preserve">Gets the values of one or more child properties for @child and @container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a widget which is a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="child_notify" c:identifier="gtk_container_child_notify" version="3.2"> <doc xml:space="preserve">Emits a #GtkWidget::child-notify signal for the [child property][child-properties] @child_property on the child. This is an analogue of g_object_notify() for child properties. Also see gtk_widget_child_notify().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">the #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="child_property" transfer-ownership="none"> <doc xml:space="preserve">the name of a child property installed on the class of @container</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="child_notify_by_pspec" c:identifier="gtk_container_child_notify_by_pspec" version="3.18"> <doc xml:space="preserve">Emits a #GtkWidget::child-notify signal for the [child property][child-properties] specified by @pspec on the child. This is an analogue of g_object_notify_by_pspec() for child properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">the #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec of a child property instealled on the class of @container</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </method> <method name="child_set" c:identifier="gtk_container_child_set" introspectable="0"> <doc xml:space="preserve">Sets one or more child properties for @child and @container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a widget which is a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="first_prop_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated list of property names and values, starting with @first_prop_name</doc> <varargs/> </parameter> </parameters> </method> <method name="child_set_property" c:identifier="gtk_container_child_set_property"> <doc xml:space="preserve">Sets a child property for @child and @container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a widget which is a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the value to set the property to</doc> <type name="GObject.Value" c:type="const GValue*"/> </parameter> </parameters> </method> <method name="child_set_valist" c:identifier="gtk_container_child_set_valist" introspectable="0"> <doc xml:space="preserve">Sets one or more child properties for @child and @container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a widget which is a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated list of property names and values, starting with @first_prop_name</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="child_type" c:identifier="gtk_container_child_type"> <doc xml:space="preserve">Returns the type of the children supported by the container. Note that this may return %G_TYPE_NONE to indicate that no more children can be added, e.g. for a #GtkPaned which already has two children.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GType.</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="forall" c:identifier="gtk_container_forall"> <doc xml:space="preserve">Invokes @callback on each direct child of @container, including children that are considered âinternalâ (implementation details of the container). âInternalâ children generally werenât added by the user of the container, but were added by the container implementation itself. Most applications should use gtk_container_foreach(), rather than gtk_container_forall().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">a callback</doc> <type name="Callback" c:type="GtkCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">callback user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="foreach" c:identifier="gtk_container_foreach"> <doc xml:space="preserve">Invokes @callback on each non-internal child of @container. See gtk_container_forall() for details on what constitutes an âinternalâ child. For all practical purposes, this function should iterate over precisely those child widgets that were added to the container by the application with explicit add() calls. Most applications should use gtk_container_foreach(), rather than gtk_container_forall().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">a callback</doc> <type name="Callback" c:type="GtkCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">callback user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="get_border_width" c:identifier="gtk_container_get_border_width"> <doc xml:space="preserve">Retrieves the border width of the container. See gtk_container_set_border_width().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current border width</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="get_children" c:identifier="gtk_container_get_children"> <doc xml:space="preserve">Returns the containerâs non-internal children. See gtk_container_forall() for details on what constitutes an "internal" child.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a newly-allocated list of the containerâs non-internal children.</doc> <type name="GLib.List" c:type="GList*"> <type name="Widget"/> </type> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="get_focus_chain" c:identifier="gtk_container_get_focus_chain"> <doc xml:space="preserve">Retrieves the focus chain of the container, if one has been set explicitly. If no focus chain has been explicitly set, GTK+ computes the focus chain based on the positions of the children. In that case, GTK+ stores %NULL in @focusable_widgets and returns %FALSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the focus chain of the container has been set explicitly.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="focusable_widgets" direction="out" caller-allocates="0" transfer-ownership="container"> <doc xml:space="preserve">location to store the focus chain of the container, or %NULL. You should free this list using g_list_free() when you are done with it, however no additional reference count is added to the individual widgets in the focus chain.</doc> <type name="GLib.List" c:type="GList**"> <type name="Widget"/> </type> </parameter> </parameters> </method> <method name="get_focus_child" c:identifier="gtk_container_get_focus_child" version="2.14"> <doc xml:space="preserve">Returns the current focus child widget inside @container. This is not the currently focused widget. That can be obtained by calling gtk_window_get_focus().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The child widget which will receive the focus inside @container when the @container is focused, or %NULL if none is set.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="get_focus_hadjustment" c:identifier="gtk_container_get_focus_hadjustment"> <doc xml:space="preserve">Retrieves the horizontal focus adjustment for the container. See gtk_container_set_focus_hadjustment ().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the horizontal focus adjustment, or %NULL if none has been set.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="get_focus_vadjustment" c:identifier="gtk_container_get_focus_vadjustment"> <doc xml:space="preserve">Retrieves the vertical focus adjustment for the container. See gtk_container_set_focus_vadjustment().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the vertical focus adjustment, or %NULL if none has been set.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="get_path_for_child" c:identifier="gtk_container_get_path_for_child"> <doc xml:space="preserve">Returns a newly created widget path representing all the widget hierarchy from the toplevel down to and including @child.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_resize_mode" c:identifier="gtk_container_get_resize_mode" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Returns the resize mode for the container. See gtk_container_set_resize_mode ().</doc> <doc-deprecated xml:space="preserve">Resize modes are deprecated. They arenât necessary anymore since frame clocks and might introduce obscure bugs if used.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current resize mode</doc> <type name="ResizeMode" c:type="GtkResizeMode"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="propagate_draw" c:identifier="gtk_container_propagate_draw"> <doc xml:space="preserve">When a container receives a call to the draw function, it must send synthetic #GtkWidget::draw calls to all children that donât have their own #GdkWindows. This function provides a convenient way of doing this. A container, when it receives a call to its #GtkWidget::draw function, calls gtk_container_propagate_draw() once for each child, passing in the @cr the container received. gtk_container_propagate_draw() takes care of translating the origin of @cr, and deciding whether the draw needs to be sent to the child. It is a convenient and optimized way of getting the same effect as calling gtk_widget_draw() on the child directly. In most cases, a container can simply either inherit the #GtkWidget::draw implementation from #GtkContainer, or do some drawing and then chain to the ::draw implementation from #GtkContainer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">Cairo context as passed to the container. If you want to use @cr in containerâs draw function, consider using cairo_save() and cairo_restore() before calling this function.</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </method> <method name="remove" c:identifier="gtk_container_remove"> <doc xml:space="preserve">Removes @widget from @container. @widget must be inside @container. Note that @container will own a reference to @widget, and that this may be the last reference held; so removing a widget from its container can destroy that widget. If you want to use @widget again, you need to add a reference to it before removing it from a container, using g_object_ref(). If you donât want to use @widget again itâs usually more efficient to simply destroy it directly using gtk_widget_destroy() since this will remove it from the container and help break any circular reference count cycles.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a current child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="resize_children" c:identifier="gtk_container_resize_children" deprecated="1" deprecated-version="3.10"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <method name="set_border_width" c:identifier="gtk_container_set_border_width"> <doc xml:space="preserve">Sets the border width of the container. The border width of a container is the amount of space to leave around the outside of the container. The only exception to this is #GtkWindow; because toplevel windows canât leave space outside, they leave the space inside. The border is added on all sides of the container. To add space to only one side, use a specific #GtkWidget:margin property on the child widget, for example #GtkWidget:margin-top.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="border_width" transfer-ownership="none"> <doc xml:space="preserve">amount of blank space to leave outside the container. Valid values are in the range 0-65535 pixels.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_focus_chain" c:identifier="gtk_container_set_focus_chain"> <doc xml:space="preserve">Sets a focus chain, overriding the one computed automatically by GTK+. In principle each widget in the chain should be a descendant of the container, but this is not enforced by this method, since itâs allowed to set the focus chain before you pack the widgets, or have a widget in the chain that isnât always packed. The necessary checks are done when the focus chain is actually traversed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="focusable_widgets" transfer-ownership="none"> <doc xml:space="preserve"> the new focus chain</doc> <type name="GLib.List" c:type="GList*"> <type name="Widget"/> </type> </parameter> </parameters> </method> <method name="set_focus_child" c:identifier="gtk_container_set_focus_child"> <doc xml:space="preserve">Sets, or unsets if @child is %NULL, the focused child of @container. This function emits the GtkContainer::set_focus_child signal of @container. Implementations of #GtkContainer can override the default behaviour by overriding the class closure of this signal. This is function is mostly meant to be used by widgets. Applications can use gtk_widget_grab_focus() to manually set the focus to a specific widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_focus_hadjustment" c:identifier="gtk_container_set_focus_hadjustment"> <doc xml:space="preserve">Hooks up an adjustment to focus handling in a container, so when a child of the container is focused, the adjustment is scrolled to show that widget. This function sets the horizontal alignment. See gtk_scrolled_window_get_hadjustment() for a typical way of obtaining the adjustment and gtk_container_set_focus_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 container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">an adjustment which should be adjusted when the focus is moved among the descendents of @container</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_focus_vadjustment" c:identifier="gtk_container_set_focus_vadjustment"> <doc xml:space="preserve">Hooks up an adjustment to focus handling in a container, so when a child of the container is focused, the adjustment is scrolled to show that widget. This function sets the vertical alignment. See gtk_scrolled_window_get_vadjustment() for a typical way of obtaining the adjustment and gtk_container_set_focus_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 container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">an adjustment which should be adjusted when the focus is moved among the descendents of @container</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_reallocate_redraws" c:identifier="gtk_container_set_reallocate_redraws" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the @reallocate_redraws flag of the container to the given value. Containers requesting reallocation redraws get automatically redrawn if any of their children changed allocation.</doc> <doc-deprecated xml:space="preserve">Call gtk_widget_queue_draw() in your size_allocate handler.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="needs_redraws" transfer-ownership="none"> <doc xml:space="preserve">the new value for the containerâs @reallocate_redraws flag</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_resize_mode" c:identifier="gtk_container_set_resize_mode" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Sets the resize mode for the container. The resize mode of a container determines whether a resize request will be passed to the containerâs parent, queued for later execution or executed immediately.</doc> <doc-deprecated xml:space="preserve">Resize modes are deprecated. They arenât necessary anymore since frame clocks and might introduce obscure bugs if used.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> <parameter name="resize_mode" transfer-ownership="none"> <doc xml:space="preserve">the new resize mode</doc> <type name="ResizeMode" c:type="GtkResizeMode"/> </parameter> </parameters> </method> <method name="unset_focus_chain" c:identifier="gtk_container_unset_focus_chain"> <doc xml:space="preserve">Removes a focus chain explicitly set with gtk_container_set_focus_chain().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </instance-parameter> </parameters> </method> <property name="border-width" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="child" readable="0" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="resize-mode" writable="1" transfer-ownership="none"> <type name="ResizeMode"/> </property> <field name="widget"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="ContainerPrivate" c:type="GtkContainerPrivate*"/> </field> <glib:signal name="add" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="check-resize" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="remove" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="set-focus-child" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="Widget"/> </parameter> </parameters> </glib:signal> </class> <class name="ContainerAccessible" c:symbol-prefix="container_accessible" c:type="GtkContainerAccessible" parent="WidgetAccessible" glib:type-name="GtkContainerAccessible" glib:get-type="gtk_container_accessible_get_type" glib:type-struct="ContainerAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="ContainerAccessiblePrivate" c:type="GtkContainerAccessiblePrivate*"/> </field> </class> <record name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass" glib:is-gtype-struct-for="ContainerAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> <field name="add_gtk"> <callback name="add_gtk"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="data" transfer-ownership="none"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> </field> <field name="remove_gtk"> <callback name="remove_gtk"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="data" transfer-ownership="none"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> </field> </record> <record name="ContainerAccessiblePrivate" c:type="GtkContainerAccessiblePrivate" disguised="1"> </record> <class name="ContainerCellAccessible" c:symbol-prefix="container_cell_accessible" c:type="GtkContainerCellAccessible" parent="CellAccessible" glib:type-name="GtkContainerCellAccessible" glib:get-type="gtk_container_cell_accessible_get_type" glib:type-struct="ContainerCellAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <constructor name="new" c:identifier="gtk_container_cell_accessible_new"> <return-value transfer-ownership="full"> <type name="ContainerCellAccessible" c:type="GtkContainerCellAccessible*"/> </return-value> </constructor> <method name="add_child" c:identifier="gtk_container_cell_accessible_add_child"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <type name="ContainerCellAccessible" c:type="GtkContainerCellAccessible*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </method> <method name="get_children" c:identifier="gtk_container_cell_accessible_get_children"> <doc xml:space="preserve">Get a list of children.</doc> <return-value transfer-ownership="none"> <type name="GLib.List" c:type="GList*"> <type name="CellAccessible"/> </type> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">the container</doc> <type name="ContainerCellAccessible" c:type="GtkContainerCellAccessible*"/> </instance-parameter> </parameters> </method> <method name="remove_child" c:identifier="gtk_container_cell_accessible_remove_child"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="container" transfer-ownership="none"> <type name="ContainerCellAccessible" c:type="GtkContainerCellAccessible*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="CellAccessible" c:type="GtkCellAccessible*"/> </parameter> </parameters> </method> <field name="parent"> <type name="CellAccessible" c:type="GtkCellAccessible"/> </field> <field name="priv"> <type name="ContainerCellAccessiblePrivate" c:type="GtkContainerCellAccessiblePrivate*"/> </field> </class> <record name="ContainerCellAccessibleClass" c:type="GtkContainerCellAccessibleClass" glib:is-gtype-struct-for="ContainerCellAccessible"> <field name="parent_class"> <type name="CellAccessibleClass" c:type="GtkCellAccessibleClass"/> </field> </record> <record name="ContainerCellAccessiblePrivate" c:type="GtkContainerCellAccessiblePrivate" disguised="1"> </record> <record name="ContainerClass" c:type="GtkContainerClass" glib:is-gtype-struct-for="Container"> <doc xml:space="preserve">Base class for containers.</doc> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="add"> <callback name="add"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a widget to be placed inside @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="remove"> <callback name="remove"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a current child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="check_resize"> <callback name="check_resize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </parameter> </parameters> </callback> </field> <field name="forall"> <callback name="forall"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="include_internals" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="callback" transfer-ownership="none" scope="call" closure="3"> <doc xml:space="preserve">a callback</doc> <type name="Callback" c:type="GtkCallback"/> </parameter> <parameter name="callback_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">callback user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> </field> <field name="set_focus_child"> <callback name="set_focus_child"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="child" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="child_type"> <callback name="child_type"> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GType.</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </parameter> </parameters> </callback> </field> <field name="composite_name"> <callback name="composite_name"> <return-value transfer-ownership="full"> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="set_child_property"> <callback name="set_child_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="property_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="const GValue*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </callback> </field> <field name="get_child_property"> <callback name="get_child_property"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="property_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="GValue*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </callback> </field> <field name="get_path_for_child"> <callback name="get_path_for_child"> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer</doc> <type name="Container" c:type="GtkContainer*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="_handle_border_width" readable="0" bits="1" private="1"> <type name="guint" c:type="unsigned"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <method name="find_child_property" c:identifier="gtk_container_class_find_child_property"> <doc xml:space="preserve">Finds a child property of a container class by name.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #GParamSpec of the child property or %NULL if @class has no child property with that name.</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </return-value> <parameters> <instance-parameter name="cclass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainerClass</doc> <type name="ContainerClass" c:type="GObjectClass*"/> </instance-parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the child property to find</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="handle_border_width" c:identifier="gtk_container_class_handle_border_width"> <doc xml:space="preserve">Modifies a subclass of #GtkContainerClass to automatically add and remove the border-width setting on GtkContainer. This allows the subclass to ignore the border width in its size request and allocate methods. The intent is for a subclass to invoke this in its class_init function. gtk_container_class_handle_border_width() is necessary because it would break API too badly to make this behavior the default. So subclasses must âopt inâ to the parent class handling border_width for them.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="klass" transfer-ownership="none"> <doc xml:space="preserve">the class struct of a #GtkContainer subclass</doc> <type name="ContainerClass" c:type="GtkContainerClass*"/> </instance-parameter> </parameters> </method> <method name="install_child_properties" c:identifier="gtk_container_class_install_child_properties" version="3.18"> <doc xml:space="preserve">Installs child properties on a container class.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cclass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainerClass</doc> <type name="ContainerClass" c:type="GtkContainerClass*"/> </instance-parameter> <parameter name="n_pspecs" transfer-ownership="none"> <doc xml:space="preserve">the length of the #GParamSpec array</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="pspecs" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec array defining the new child properties</doc> <array length="0" zero-terminated="0" c:type="GParamSpec**"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </array> </parameter> </parameters> </method> <method name="install_child_property" c:identifier="gtk_container_class_install_child_property"> <doc xml:space="preserve">Installs a child property on a container class.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="cclass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainerClass</doc> <type name="ContainerClass" c:type="GtkContainerClass*"/> </instance-parameter> <parameter name="property_id" transfer-ownership="none"> <doc xml:space="preserve">the id for the property</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec for the property</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </method> <method name="list_child_properties" c:identifier="gtk_container_class_list_child_properties"> <doc xml:space="preserve">Returns all child properties of a container class.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve"> a newly allocated %NULL-terminated array of #GParamSpec*. The array must be freed with g_free().</doc> <array length="0" zero-terminated="0" c:type="GParamSpec**"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </array> </return-value> <parameters> <instance-parameter name="cclass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainerClass</doc> <type name="ContainerClass" c:type="GObjectClass*"/> </instance-parameter> <parameter name="n_properties" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to return the number of child properties found</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> </record> <record name="ContainerPrivate" c:type="GtkContainerPrivate" disguised="1"> </record> <enumeration name="CornerType" glib:type-name="GtkCornerType" glib:get-type="gtk_corner_type_get_type" c:type="GtkCornerType"> <doc xml:space="preserve">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.</doc> <member name="top_left" value="0" c:identifier="GTK_CORNER_TOP_LEFT" glib:nick="top-left"> <doc xml:space="preserve">Place the scrollbars on the right and bottom of the widget (default behaviour).</doc> </member> <member name="bottom_left" value="1" c:identifier="GTK_CORNER_BOTTOM_LEFT" glib:nick="bottom-left"> <doc xml:space="preserve">Place the scrollbars on the top and right of the widget.</doc> </member> <member name="top_right" value="2" c:identifier="GTK_CORNER_TOP_RIGHT" glib:nick="top-right"> <doc xml:space="preserve">Place the scrollbars on the left and bottom of the widget.</doc> </member> <member name="bottom_right" value="3" c:identifier="GTK_CORNER_BOTTOM_RIGHT" glib:nick="bottom-right"> <doc xml:space="preserve">Place the scrollbars on the top and left of the widget.</doc> </member> </enumeration> <class name="CssProvider" c:symbol-prefix="css_provider" c:type="GtkCssProvider" parent="GObject.Object" glib:type-name="GtkCssProvider" glib:get-type="gtk_css_provider_get_type" glib:type-struct="CssProviderClass"> <doc xml:space="preserve">GtkCssProvider is an object implementing the #GtkStyleProvider interface. It is able to parse [CSS-like][css-overview] input in order to style widgets. An application can make GTK+ parse a specific CSS style sheet by calling gtk_css_provider_load_from_file() or gtk_css_provider_load_from_resource() and adding the provider with gtk_style_context_add_provider() or gtk_style_context_add_provider_for_screen(). In addition, certain files will be read when GTK+ is initialized. First, the file `$XDG_CONFIG_HOME/gtk-3.0/gtk.css` is loaded if it exists. Then, GTK+ loads the first existing file among `XDG_DATA_HOME/themes/THEME/gtk-VERSION/gtk.css`, `$HOME/.themes/THEME/gtk-VERSION/gtk.css`, `$XDG_DATA_DIRS/themes/THEME/gtk-VERSION/gtk.css` and `DATADIR/share/themes/THEME/gtk-VERSION/gtk.css`, where `THEME` is the name of the current theme (see the #GtkSettings:gtk-theme-name setting), `DATADIR` is the prefix configured when GTK+ was compiled (unless overridden by the `GTK_DATA_PREFIX` environment variable), and `VERSION` is the GTK+ version number. If no file is found for the current version, GTK+ tries older versions all the way back to 3.0. In the same way, GTK+ tries to load a gtk-keys.css file for the current key theme, as defined by #GtkSettings:gtk-key-theme-name.</doc> <implements name="StyleProvider"/> <constructor name="new" c:identifier="gtk_css_provider_new"> <doc xml:space="preserve">Returns a newly created #GtkCssProvider.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A new #GtkCssProvider</doc> <type name="CssProvider" c:type="GtkCssProvider*"/> </return-value> </constructor> <function name="get_default" c:identifier="gtk_css_provider_get_default"> <doc xml:space="preserve">Returns the provider containing the style settings used as a fallback for all widgets.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The provider used for fallback styling. This memory is owned by GTK+, and you must not free it.</doc> <type name="CssProvider" c:type="GtkCssProvider*"/> </return-value> </function> <function name="get_named" c:identifier="gtk_css_provider_get_named"> <doc xml:space="preserve">Loads a theme from the usual theme paths</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkCssProvider with the theme loaded. This memory is owned by GTK+, and you must not free it.</doc> <type name="CssProvider" c:type="GtkCssProvider*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">A theme name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="variant" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">variant to load, for example, "dark", or %NULL for the default</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <virtual-method name="parsing_error"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="provider" transfer-ownership="none"> <type name="CssProvider" c:type="GtkCssProvider*"/> </instance-parameter> <parameter name="section" transfer-ownership="none"> <type name="CssSection" c:type="GtkCssSection*"/> </parameter> <parameter name="error" transfer-ownership="none"> <type name="GLib.Error" c:type="const GError*"/> </parameter> </parameters> </virtual-method> <method name="load_from_data" c:identifier="gtk_css_provider_load_from_data" throws="1"> <doc xml:space="preserve">Loads @data into @css_provider, and by doing so clears any previously loaded information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE. The return value is deprecated and %FALSE will only be returned for backwards compatibility reasons if an @error is not %NULL and a loading error occurred. To track errors while loading CSS, connect to the #GtkCssProvider::parsing-error signal.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="css_provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCssProvider</doc> <type name="CssProvider" c:type="GtkCssProvider*"/> </instance-parameter> <parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">CSS data loaded in memory</doc> <array length="1" zero-terminated="0" c:type="gchar*"> <type name="guint8"/> </array> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">the length of @data in bytes, or -1 for NUL terminated strings. If @length is not -1, the code will assume it is not NUL terminated and will potentially do a copy.</doc> <type name="gssize" c:type="gssize"/> </parameter> </parameters> </method> <method name="load_from_file" c:identifier="gtk_css_provider_load_from_file" throws="1"> <doc xml:space="preserve">Loads the data contained in @file into @css_provider, making it clear any previously loaded information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE. The return value is deprecated and %FALSE will only be returned for backwards compatibility reasons if an @error is not %NULL and a loading error occurred. To track errors while loading CSS, connect to the #GtkCssProvider::parsing-error signal.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="css_provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCssProvider</doc> <type name="CssProvider" c:type="GtkCssProvider*"/> </instance-parameter> <parameter name="file" transfer-ownership="none"> <doc xml:space="preserve">#GFile pointing to a file to load</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </method> <method name="load_from_path" c:identifier="gtk_css_provider_load_from_path" throws="1"> <doc xml:space="preserve">Loads the data contained in @path into @css_provider, making it clear any previously loaded information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE. The return value is deprecated and %FALSE will only be returned for backwards compatibility reasons if an @error is not %NULL and a loading error occurred. To track errors while loading CSS, connect to the #GtkCssProvider::parsing-error signal.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="css_provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCssProvider</doc> <type name="CssProvider" c:type="GtkCssProvider*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the path of a filename to load, in the GLib filename encoding</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="load_from_resource" c:identifier="gtk_css_provider_load_from_resource" version="3.16"> <doc xml:space="preserve">Loads the data contained in the resource at @resource_path into the #GtkCssProvider, clearing any previously loaded information. To track errors while loading CSS, connect to the #GtkCssProvider::parsing-error signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="css_provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCssProvider</doc> <type name="CssProvider" c:type="GtkCssProvider*"/> </instance-parameter> <parameter name="resource_path" transfer-ownership="none"> <doc xml:space="preserve">a #GResource resource path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="to_string" c:identifier="gtk_css_provider_to_string" version="3.2"> <doc xml:space="preserve">Converts the @provider into a string representation in CSS format. Using gtk_css_provider_load_from_data() with the return value from this function on a new provider created with gtk_css_provider_new() will basically create a duplicate of this @provider.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new string representing the @provider.</doc> <type name="utf8" c:type="char*"/> </return-value> <parameters> <instance-parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">the provider to write to a string</doc> <type name="CssProvider" c:type="GtkCssProvider*"/> </instance-parameter> </parameters> </method> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="CssProviderPrivate" c:type="GtkCssProviderPrivate*"/> </field> <glib:signal name="parsing-error" when="last"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">section the error happened in</doc> <type name="CssSection"/> </parameter> <parameter name="error" transfer-ownership="none"> <doc xml:space="preserve">The parsing error</doc> <type name="GLib.Error"/> </parameter> </parameters> </glib:signal> </class> <record name="CssProviderClass" c:type="GtkCssProviderClass" glib:is-gtype-struct-for="CssProvider"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="parsing_error"> <callback name="parsing_error"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="provider" transfer-ownership="none"> <type name="CssProvider" c:type="GtkCssProvider*"/> </parameter> <parameter name="section" transfer-ownership="none"> <type name="CssSection" c:type="GtkCssSection*"/> </parameter> <parameter name="error" transfer-ownership="none"> <type name="GLib.Error" c:type="const GError*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="CssProviderError" glib:type-name="GtkCssProviderError" glib:get-type="gtk_css_provider_error_get_type" c:type="GtkCssProviderError" glib:error-domain="gtk-css-provider-error-quark"> <doc xml:space="preserve">Error codes for %GTK_CSS_PROVIDER_ERROR.</doc> <member name="failed" value="0" c:identifier="GTK_CSS_PROVIDER_ERROR_FAILED" glib:nick="failed"> <doc xml:space="preserve">Failed.</doc> </member> <member name="syntax" value="1" c:identifier="GTK_CSS_PROVIDER_ERROR_SYNTAX" glib:nick="syntax"> <doc xml:space="preserve">Syntax error.</doc> </member> <member name="import" value="2" c:identifier="GTK_CSS_PROVIDER_ERROR_IMPORT" glib:nick="import"> <doc xml:space="preserve">Import error.</doc> </member> <member name="name" value="3" c:identifier="GTK_CSS_PROVIDER_ERROR_NAME" glib:nick="name"> <doc xml:space="preserve">Name error.</doc> </member> <member name="deprecated" value="4" c:identifier="GTK_CSS_PROVIDER_ERROR_DEPRECATED" glib:nick="deprecated"> <doc xml:space="preserve">Deprecation error.</doc> </member> <member name="unknown_value" value="5" c:identifier="GTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUE" glib:nick="unknown-value"> <doc xml:space="preserve">Unknown value.</doc> </member> <function name="quark" c:identifier="gtk_css_provider_error_quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> </enumeration> <record name="CssProviderPrivate" c:type="GtkCssProviderPrivate" disguised="1"> </record> <record name="CssSection" c:type="GtkCssSection" version="3.2" glib:type-name="GtkCssSection" glib:get-type="gtk_css_section_get_type" c:symbol-prefix="css_section"> <doc xml:space="preserve">Defines a part of a CSS document. Because sections are nested into one another, you can use gtk_css_section_get_parent() to get the containing region.</doc> <method name="get_end_line" c:identifier="gtk_css_section_get_end_line" version="3.2"> <doc xml:space="preserve">Returns the line in the CSS document where this section end. The line number is 0-indexed, so the first line of the document will return 0. This value may change in future invocations of this function if @section is not yet parsed completely. This will for example happen in the GtkCssProvider::parsing-error signal. The end position and line may be identical to the start position and line for sections which failed to parse anything successfully.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the line number</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">the section</doc> <type name="CssSection" c:type="const GtkCssSection*"/> </instance-parameter> </parameters> </method> <method name="get_end_position" c:identifier="gtk_css_section_get_end_position" version="3.2"> <doc xml:space="preserve">Returns the offset in bytes from the start of the current line returned via gtk_css_section_get_end_line(). This value may change in future invocations of this function if @section is not yet parsed completely. This will for example happen in the GtkCssProvider::parsing-error signal. The end position and line may be identical to the start position and line for sections which failed to parse anything successfully.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the offset in bytes from the start of the line.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">the section</doc> <type name="CssSection" c:type="const GtkCssSection*"/> </instance-parameter> </parameters> </method> <method name="get_file" c:identifier="gtk_css_section_get_file" version="3.2"> <doc xml:space="preserve">Gets the file that @section was parsed from. If no such file exists, for example because the CSS was loaded via @gtk_css_provider_load_from_data(), then %NULL is returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GFile that @section was parsed from or %NULL if @section was parsed from other data</doc> <type name="Gio.File" c:type="GFile*"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">the section</doc> <type name="CssSection" c:type="const GtkCssSection*"/> </instance-parameter> </parameters> </method> <method name="get_parent" c:identifier="gtk_css_section_get_parent" version="3.2"> <doc xml:space="preserve">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_DOCUMENT. Their parent will either be %NULL if they are the original CSS document that was loaded by gtk_css_provider_load_from_file() or a section of type #GTK_CSS_SECTION_IMPORT if it was loaded with an import rule from a different file.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the parent section or %NULL if none</doc> <type name="CssSection" c:type="GtkCssSection*"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">the section</doc> <type name="CssSection" c:type="const GtkCssSection*"/> </instance-parameter> </parameters> </method> <method name="get_section_type" c:identifier="gtk_css_section_get_section_type" version="3.2"> <doc xml:space="preserve">Gets the type of information that @section describes.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the type of @section</doc> <type name="CssSectionType" c:type="GtkCssSectionType"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">the section</doc> <type name="CssSection" c:type="const GtkCssSection*"/> </instance-parameter> </parameters> </method> <method name="get_start_line" c:identifier="gtk_css_section_get_start_line" version="3.2"> <doc xml:space="preserve">Returns the line in the CSS document where this section starts. The line number is 0-indexed, so the first line of the document will return 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the line number</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">the section</doc> <type name="CssSection" c:type="const GtkCssSection*"/> </instance-parameter> </parameters> </method> <method name="get_start_position" c:identifier="gtk_css_section_get_start_position" version="3.2"> <doc xml:space="preserve">Returns the offset in bytes from the start of the current line returned via gtk_css_section_get_start_line().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the offset in bytes from the start of the line.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">the section</doc> <type name="CssSection" c:type="const GtkCssSection*"/> </instance-parameter> </parameters> </method> <method name="ref" c:identifier="gtk_css_section_ref" version="3.2"> <doc xml:space="preserve">Increments the reference count on @section.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">@section itself.</doc> <type name="CssSection" c:type="GtkCssSection*"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCssSection</doc> <type name="CssSection" c:type="GtkCssSection*"/> </instance-parameter> </parameters> </method> <method name="unref" c:identifier="gtk_css_section_unref" version="3.2"> <doc xml:space="preserve">Decrements the reference count on @section, freeing the structure if the reference count reaches 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="section" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCssSection</doc> <type name="CssSection" c:type="GtkCssSection*"/> </instance-parameter> </parameters> </method> </record> <enumeration name="CssSectionType" version="3.2" glib:type-name="GtkCssSectionType" glib:get-type="gtk_css_section_type_get_type" c:type="GtkCssSectionType"> <doc xml:space="preserve">The different types of sections indicate parts of a CSS document as parsed by GTKâs CSS parser. They are oriented towards the [CSS Grammar](http://www.w3.org/TR/CSS21/grammar.html), but may contain extensions. More types might be added in the future as the parser incorporates more features.</doc> <member name="document" value="0" c:identifier="GTK_CSS_SECTION_DOCUMENT" glib:nick="document"> <doc xml:space="preserve">The section describes a complete document. This section time is the only one where gtk_css_section_get_parent() might return %NULL.</doc> </member> <member name="import" value="1" c:identifier="GTK_CSS_SECTION_IMPORT" glib:nick="import"> <doc xml:space="preserve">The section defines an import rule.</doc> </member> <member name="color_definition" value="2" c:identifier="GTK_CSS_SECTION_COLOR_DEFINITION" glib:nick="color-definition"> <doc xml:space="preserve">The section defines a color. This is a GTK extension to CSS.</doc> </member> <member name="binding_set" value="3" c:identifier="GTK_CSS_SECTION_BINDING_SET" glib:nick="binding-set"> <doc xml:space="preserve">The section defines a binding set. This is a GTK extension to CSS.</doc> </member> <member name="ruleset" value="4" c:identifier="GTK_CSS_SECTION_RULESET" glib:nick="ruleset"> <doc xml:space="preserve">The section defines a CSS ruleset.</doc> </member> <member name="selector" value="5" c:identifier="GTK_CSS_SECTION_SELECTOR" glib:nick="selector"> <doc xml:space="preserve">The section defines a CSS selector.</doc> </member> <member name="declaration" value="6" c:identifier="GTK_CSS_SECTION_DECLARATION" glib:nick="declaration"> <doc xml:space="preserve">The section defines the declaration of a CSS variable.</doc> </member> <member name="value" value="7" c:identifier="GTK_CSS_SECTION_VALUE" glib:nick="value"> <doc xml:space="preserve">The section defines the value of a CSS declaration.</doc> </member> <member name="keyframes" value="8" c:identifier="GTK_CSS_SECTION_KEYFRAMES" glib:nick="keyframes"> <doc xml:space="preserve">The section defines keyframes. See [CSS Animations](http://dev.w3.org/csswg/css3-animations/#keyframes) for details. Since 3.6</doc> </member> </enumeration> <bitfield name="DebugFlag" glib:type-name="GtkDebugFlag" glib:get-type="gtk_debug_flag_get_type" c:type="GtkDebugFlag"> <member name="misc" value="1" c:identifier="GTK_DEBUG_MISC" glib:nick="misc"> </member> <member name="plugsocket" value="2" c:identifier="GTK_DEBUG_PLUGSOCKET" glib:nick="plugsocket"> </member> <member name="text" value="4" c:identifier="GTK_DEBUG_TEXT" glib:nick="text"> </member> <member name="tree" value="8" c:identifier="GTK_DEBUG_TREE" glib:nick="tree"> </member> <member name="updates" value="16" c:identifier="GTK_DEBUG_UPDATES" glib:nick="updates"> </member> <member name="keybindings" value="32" c:identifier="GTK_DEBUG_KEYBINDINGS" glib:nick="keybindings"> </member> <member name="multihead" value="64" c:identifier="GTK_DEBUG_MULTIHEAD" glib:nick="multihead"> </member> <member name="modules" value="128" c:identifier="GTK_DEBUG_MODULES" glib:nick="modules"> </member> <member name="geometry" value="256" c:identifier="GTK_DEBUG_GEOMETRY" glib:nick="geometry"> </member> <member name="icontheme" value="512" c:identifier="GTK_DEBUG_ICONTHEME" glib:nick="icontheme"> </member> <member name="printing" value="1024" c:identifier="GTK_DEBUG_PRINTING" glib:nick="printing"> </member> <member name="builder" value="2048" c:identifier="GTK_DEBUG_BUILDER" glib:nick="builder"> </member> <member name="size_request" value="4096" c:identifier="GTK_DEBUG_SIZE_REQUEST" glib:nick="size-request"> </member> <member name="no_css_cache" value="8192" c:identifier="GTK_DEBUG_NO_CSS_CACHE" glib:nick="no-css-cache"> </member> <member name="baselines" value="16384" c:identifier="GTK_DEBUG_BASELINES" glib:nick="baselines"> </member> <member name="pixel_cache" value="32768" c:identifier="GTK_DEBUG_PIXEL_CACHE" glib:nick="pixel-cache"> </member> <member name="no_pixel_cache" value="65536" c:identifier="GTK_DEBUG_NO_PIXEL_CACHE" glib:nick="no-pixel-cache"> </member> <member name="interactive" value="131072" c:identifier="GTK_DEBUG_INTERACTIVE" glib:nick="interactive"> </member> <member name="touchscreen" value="262144" c:identifier="GTK_DEBUG_TOUCHSCREEN" glib:nick="touchscreen"> </member> <member name="actions" value="524288" c:identifier="GTK_DEBUG_ACTIONS" glib:nick="actions"> </member> <member name="resize" value="1048576" c:identifier="GTK_DEBUG_RESIZE" glib:nick="resize"> </member> <member name="layout" value="2097152" c:identifier="GTK_DEBUG_LAYOUT" glib:nick="layout"> </member> </bitfield> <enumeration name="DeleteType" glib:type-name="GtkDeleteType" glib:get-type="gtk_delete_type_get_type" c:type="GtkDeleteType"> <doc xml:space="preserve">See also: #GtkEntry::delete-from-cursor.</doc> <member name="chars" value="0" c:identifier="GTK_DELETE_CHARS" glib:nick="chars"> <doc xml:space="preserve">Delete characters.</doc> </member> <member name="word_ends" value="1" c:identifier="GTK_DELETE_WORD_ENDS" glib:nick="word-ends"> <doc xml:space="preserve">Delete only the portion of the word to the left/right of cursor if weâre in the middle of a word.</doc> </member> <member name="words" value="2" c:identifier="GTK_DELETE_WORDS" glib:nick="words"> <doc xml:space="preserve">Delete words.</doc> </member> <member name="display_lines" value="3" c:identifier="GTK_DELETE_DISPLAY_LINES" glib:nick="display-lines"> <doc xml:space="preserve">Delete display-lines. Display-lines refers to the visible lines, with respect to to the current line breaks. As opposed to paragraphs, which are defined by line breaks in the input.</doc> </member> <member name="display_line_ends" value="4" c:identifier="GTK_DELETE_DISPLAY_LINE_ENDS" glib:nick="display-line-ends"> <doc xml:space="preserve">Delete only the portion of the display-line to the left/right of cursor.</doc> </member> <member name="paragraph_ends" value="5" c:identifier="GTK_DELETE_PARAGRAPH_ENDS" glib:nick="paragraph-ends"> <doc xml:space="preserve">Delete to the end of the paragraph. Like C-k in Emacs (or its reverse).</doc> </member> <member name="paragraphs" value="6" c:identifier="GTK_DELETE_PARAGRAPHS" glib:nick="paragraphs"> <doc xml:space="preserve">Delete entire line. Like C-k in pico.</doc> </member> <member name="whitespace" value="7" c:identifier="GTK_DELETE_WHITESPACE" glib:nick="whitespace"> <doc xml:space="preserve">Delete only whitespace. Like M-\ in Emacs.</doc> </member> </enumeration> <bitfield name="DestDefaults" glib:type-name="GtkDestDefaults" glib:get-type="gtk_dest_defaults_get_type" c:type="GtkDestDefaults"> <doc xml:space="preserve">The #GtkDestDefaults enumeration specifies the various types of action that will be taken on behalf of the user for a drag destination site.</doc> <member name="motion" value="1" c:identifier="GTK_DEST_DEFAULT_MOTION" glib:nick="motion"> <doc xml:space="preserve">If set for a widget, GTK+, during a drag over this widget will check if the drag matches this widgetâs list of possible targets and actions. GTK+ will then call gdk_drag_status() as appropriate.</doc> </member> <member name="highlight" value="2" c:identifier="GTK_DEST_DEFAULT_HIGHLIGHT" glib:nick="highlight"> <doc xml:space="preserve">If set for a widget, GTK+ will draw a highlight on this widget as long as a drag is over this widget and the widget drag format and action are acceptable.</doc> </member> <member name="drop" value="4" c:identifier="GTK_DEST_DEFAULT_DROP" glib:nick="drop"> <doc xml:space="preserve">If set for a widget, when a drop occurs, GTK+ will will check if the drag matches this widgetâs list of possible targets and actions. If so, GTK+ will call gtk_drag_get_data() on behalf of the widget. Whether or not the drop is successful, GTK+ will call gtk_drag_finish(). If the action was a move, then if the drag was successful, then %TRUE will be passed for the @delete parameter to gtk_drag_finish().</doc> </member> <member name="all" value="7" c:identifier="GTK_DEST_DEFAULT_ALL" glib:nick="all"> <doc xml:space="preserve">If set, specifies that all default actions should be taken.</doc> </member> </bitfield> <class name="Dialog" c:symbol-prefix="dialog" c:type="GtkDialog" parent="Window" glib:type-name="GtkDialog" glib:get-type="gtk_dialog_get_type" glib:type-struct="DialogClass"> <doc xml:space="preserve">Dialog boxes are a convenient way to prompt the user for a small amount of input, e.g. to display a message, ask a question, or anything else that does not require extensive effort on the userâs part. GTK+ treats a dialog as a window split vertically. The top section is a #GtkVBox, and is where widgets such as a #GtkLabel or a #GtkEntry should be packed. The bottom area is known as the âaction areaâ. This is generally used for packing buttons into the dialog which may perform functions such as cancel, ok, or apply. #GtkDialog boxes are created with a call to gtk_dialog_new() or gtk_dialog_new_with_buttons(). gtk_dialog_new_with_buttons() is recommended; it allows you to set the dialog title, some convenient flags, and add simple buttons. If âdialogâ is a newly created dialog, the two primary areas of the window can be accessed through gtk_dialog_get_content_area() and gtk_dialog_get_action_area(), as can be seen from the example below. A âmodalâ dialog (that is, one which freezes the rest of the application from user input), can be created by calling gtk_window_set_modal() on the dialog. Use the GTK_WINDOW() macro to cast the widget returned from gtk_dialog_new() into a #GtkWindow. When using gtk_dialog_new_with_buttons() you can also pass the #GTK_DIALOG_MODAL flag to make a dialog modal. If you add buttons to #GtkDialog using gtk_dialog_new_with_buttons(), gtk_dialog_add_button(), gtk_dialog_add_buttons(), or gtk_dialog_add_action_widget(), clicking the button will emit a signal called #GtkDialog::response with a response ID that you specified. GTK+ will never assign a meaning to positive response IDs; these are entirely user-defined. But for convenience, you can use the response IDs in the #GtkResponseType enumeration (these all have values less than zero). If a dialog receives a delete event, the #GtkDialog::response signal will be emitted with a response ID of #GTK_RESPONSE_DELETE_EVENT. If you want to block waiting for a dialog to return before returning control flow to your code, you can call gtk_dialog_run(). This function enters a recursive main loop and waits for the user to respond to the dialog, returning the response ID corresponding to the button the user clicked. For the simple dialog in the following example, in reality youâd probably use #GtkMessageDialog to save yourself some effort. But youâd need to create the dialog contents manually if you had more than a simple message in the dialog. An example for simple GtkDialog usage: |[<!-- language="C" --> // Function to open a dialog box with a message void quick_message (GtkWindow *parent, gchar *message) { GtkWidget *dialog, *label, *content_area; GtkDialogFlags flags; // Create the widgets flags = GTK_DIALOG_DESTROY_WITH_PARENT; dialog = gtk_dialog_new_with_buttons ("Message", parent, flags, _("_OK"), GTK_RESPONSE_NONE, NULL); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); label = gtk_label_new (message); // Ensure that the dialog box is destroyed when the user responds g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); // Add the label, and show everything weâve added gtk_container_add (GTK_CONTAINER (content_area), label); gtk_widget_show_all (dialog); } ]| # GtkDialog as GtkBuildable The GtkDialog implementation of the #GtkBuildable interface exposes the @vbox and @action_area as internal children with the names âvboxâ and âaction_areaâ. GtkDialog supports a custom <action-widgets> element, which can contain multiple <action-widget> elements. The âresponseâ attribute specifies a numeric response, and the content of the element is the id of widget (which should be a child of the dialogs @action_area). To mark a response as default, set the âdefaultâ attribute of the <action-widget> element to true. GtkDialog supports adding action widgets by specifying âactionâ as the âtypeâ attribute of a <child> element. The widget will be added either to the action area or the headerbar of the dialog, depending on the âuse-header-barâ property. The response id has to be associated with the action widget using the <action-widgets> element. An example of a #GtkDialog UI definition fragment: |[ <object class="GtkDialog" id="dialog1"> <child type="action"> <object class="GtkButton" id="button_cancel"/> </child> <child type="action"> <object class="GtkButton" id="button_ok"> <property name="can-default">True</property> </object> </child> <action-widgets> <action-widget response="cancel">button_cancel</action-widget> <action-widget response="ok" default="true">button_ok</action-widget> </action-widgets> </object> ]|</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_dialog_new"> <doc xml:space="preserve">Creates a new dialog box. Widgets should not be packed into this #GtkWindow directly, but into the @vbox and @action_area, as described above.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new dialog as a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_buttons" c:identifier="gtk_dialog_new_with_buttons" introspectable="0"> <doc xml:space="preserve">Creates a new #GtkDialog with title @title (or %NULL for the default title; see gtk_window_set_title()) and transient parent @parent (or %NULL for none; see gtk_window_set_transient_for()). The @flags argument can be used to make the dialog modal (#GTK_DIALOG_MODAL) and/or to have it destroyed along with its transient parent (#GTK_DIALOG_DESTROY_WITH_PARENT). After @flags, button text/response ID pairs should be listed, 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 #GtkResponseType enumeration. If the user clicks one of these dialog buttons, #GtkDialog will emit the #GtkDialog::response signal with the corresponding response ID. If a #GtkDialog receives the #GtkWidget::delete-event signal, 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. Buttons are from left to right, so the first button in the list will be the leftmost button in the dialog. Hereâs a simple example: |[<!-- language="C" --> GtkWidget *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 ("My dialog", main_app_window, flags, _("_OK"), GTK_RESPONSE_ACCEPT, _("_Cancel"), GTK_RESPONSE_REJECT, NULL); ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Title of the dialog, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Transient parent of the dialog, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">from #GtkDialogFlags</doc> <type name="DialogFlags" c:type="GtkDialogFlags"/> </parameter> <parameter name="first_button_text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">text to go in first button, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">response ID for first button, then additional buttons, ending with %NULL</doc> <varargs/> </parameter> </parameters> </constructor> <virtual-method name="close"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="response" invoker="response"> <doc xml:space="preserve">Emits the #GtkDialog::response signal with the given response ID. Used to indicate that the user has responded to the dialog in some way; typically either you or gtk_dialog_run() will be monitoring the ::response signal and take appropriate action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <method name="add_action_widget" c:identifier="gtk_dialog_add_action_widget"> <doc xml:space="preserve">Adds an activatable widget to the action area of a #GtkDialog, connecting a signal handler that will emit the #GtkDialog::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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">an activatable widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">response ID for @child</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="add_button" c:identifier="gtk_dialog_add_button"> <doc xml:space="preserve">Adds a button with the given text and sets things up so that clicking the button will emit the #GtkDialog::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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkButton widget that was added</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="button_text" transfer-ownership="none"> <doc xml:space="preserve">text of button</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">response ID for the button</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="add_buttons" c:identifier="gtk_dialog_add_buttons" introspectable="0"> <doc xml:space="preserve">Adds more buttons, same as calling gtk_dialog_add_button() repeatedly. The variable argument list should be %NULL-terminated as with gtk_dialog_new_with_buttons(). Each button must have both text and response ID.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="first_button_text" transfer-ownership="none"> <doc xml:space="preserve">button text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">response ID for first button, then more text-response_id pairs</doc> <varargs/> </parameter> </parameters> </method> <method name="get_action_area" c:identifier="gtk_dialog_get_action_area" version="2.14" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Returns the action area of @dialog.</doc> <doc-deprecated xml:space="preserve">Direct access to the action area is discouraged; use gtk_dialog_add_button(), etc.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action area</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> </parameters> </method> <method name="get_content_area" c:identifier="gtk_dialog_get_content_area" version="2.14"> <doc xml:space="preserve">Returns the content area of @dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the content area #GtkBox.</doc> <type name="Box" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> </parameters> </method> <method name="get_header_bar" c:identifier="gtk_dialog_get_header_bar" version="3.12"> <doc xml:space="preserve">Returns the header bar of @dialog. Note that the headerbar is only used by the dialog if the #GtkDialog:use-header-bar property is %TRUE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the header bar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> </parameters> </method> <method name="get_response_for_widget" c:identifier="gtk_dialog_get_response_for_widget" version="2.8"> <doc xml:space="preserve">Gets the response id of a widget in the action area of a dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the response id of @widget, or %GTK_RESPONSE_NONE if @widget doesnât have a response id set.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a widget in the action area of @dialog</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_widget_for_response" c:identifier="gtk_dialog_get_widget_for_response" version="2.20"> <doc xml:space="preserve">Gets the widget button that uses the given response ID in the action area of a dialog.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the @widget button that uses the given @response_id, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">the response ID used by the @dialog widget</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="response" c:identifier="gtk_dialog_response"> <doc xml:space="preserve">Emits the #GtkDialog::response signal with the given response ID. Used to indicate that the user has responded to the dialog in some way; typically either you or gtk_dialog_run() will be monitoring the ::response signal and take appropriate action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="run" c:identifier="gtk_dialog_run"> <doc xml:space="preserve">Blocks in a recursive main loop until the @dialog either emits the #GtkDialog::response signal, or is destroyed. If the dialog is destroyed during the call to gtk_dialog_run(), gtk_dialog_run() returns #GTK_RESPONSE_NONE. Otherwise, it returns the response ID from the ::response signal emission. Before entering the recursive main loop, gtk_dialog_run() calls gtk_widget_show() on the dialog for you. Note that you still need to show any children of the dialog yourself. During gtk_dialog_run(), the default behavior of #GtkWidget::delete-event is disabled; if the dialog receives ::delete_event, it will not be destroyed as windows usually are, and gtk_dialog_run() will return #GTK_RESPONSE_DELETE_EVENT. Also, during gtk_dialog_run() the dialog will be modal. You can force gtk_dialog_run() to return at any time by calling gtk_dialog_response() to emit the ::response signal. Destroying the dialog during gtk_dialog_run() is a very bad idea, because your post-run code wonât know whether the dialog was destroyed or not. After gtk_dialog_run() returns, you are responsible for hiding or destroying the dialog if you wish to do so. Typical usage of this function might be: |[<!-- language="C" --> GtkWidget *dialog = gtk_dialog_new (); // Set up dialog... int result = gtk_dialog_run (GTK_DIALOG (dialog)); switch (result) { case GTK_RESPONSE_ACCEPT: // do_application_specific_something (); break; default: // do_nothing_since_dialog_was_cancelled (); break; } gtk_widget_destroy (dialog); ]| Note that even though the recursive main loop gives the effect of a modal dialog (it prevents the user from interacting with other windows in the same window group while the dialog is run), callbacks such as timeouts, IO channel watches, DND drops, etc, will be triggered during a gtk_dialog_run() call.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">response ID</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> </parameters> </method> <method name="set_alternative_button_order" c:identifier="gtk_dialog_set_alternative_button_order" version="2.6" introspectable="0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets an alternative button order. If the #GtkSettings:gtk-alternative-button-order setting is set to %TRUE, the dialog buttons are reordered according to the order of the response ids passed to this function. By default, GTK+ dialogs use the button order advocated by the [GNOME Human Interface Guidelines](http://library.gnome.org/devel/hig-book/stable/) with the affirmative button at the far right, and the cancel button left of it. But the builtin GTK+ dialogs and #GtkMessageDialogs do provide an alternative button order, which is more suitable on some platforms, e.g. Windows. Use this function after adding all the buttons to your dialog, as the following example shows: |[<!-- language="C" --> cancel_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("_Cancel"), GTK_RESPONSE_CANCEL); ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("_OK"), GTK_RESPONSE_OK); gtk_widget_grab_default (ok_button); help_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("_Help"), GTK_RESPONSE_HELP); gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL, GTK_RESPONSE_HELP, -1); ]|</doc> <doc-deprecated xml:space="preserve">Deprecated</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="first_response_id" transfer-ownership="none"> <doc xml:space="preserve">a response id used by one @dialogâs buttons</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">a list of more response ids of @dialogâs buttons, terminated by -1</doc> <varargs/> </parameter> </parameters> </method> <method name="set_alternative_button_order_from_array" c:identifier="gtk_dialog_set_alternative_button_order_from_array" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets an alternative button order. If the #GtkSettings:gtk-alternative-button-order setting is set to %TRUE, the dialog buttons are reordered according to the order of the response ids in @new_order. See gtk_dialog_set_alternative_button_order() for more information. This function is for use by language bindings.</doc> <doc-deprecated xml:space="preserve">Deprecated</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="n_params" transfer-ownership="none"> <doc xml:space="preserve">the number of response ids in @new_order</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">an array of response ids of @dialogâs buttons</doc> <array length="0" zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> </parameters> </method> <method name="set_default_response" c:identifier="gtk_dialog_set_default_response"> <doc xml:space="preserve">Sets the last widget in the dialogâs action area with the given @response_id as the default widget for the dialog. Pressing âEnterâ normally activates the default widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">a response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_response_sensitive" c:identifier="gtk_dialog_set_response_sensitive"> <doc xml:space="preserve">Calls `gtk_widget_set_sensitive (widget, @setting)` for each widget in the dialogâs action area with the given @response_id. A convenient way to sensitize/desensitize dialog buttons.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">a response ID</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE for sensitive</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="use-header-bar" version="3.12" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the dialog 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.</doc> <type name="gint" c:type="gint"/> </property> <field name="window"> <type name="Window" c:type="GtkWindow"/> </field> <field name="priv" readable="0" private="1"> <type name="DialogPrivate" c:type="GtkDialogPrivate*"/> </field> <glib:signal name="close" when="last" action="1"> <doc xml:space="preserve">The ::close signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to close the dialog. The default binding for this signal is the Escape key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="response" when="last"> <doc xml:space="preserve">Emitted when an action widget is clicked, the dialog receives a delete event, or the application programmer calls gtk_dialog_response(). On a delete event, the response ID is #GTK_RESPONSE_DELETE_EVENT. Otherwise, it depends on which action widget was clicked.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">the response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> </class> <record name="DialogClass" c:type="GtkDialogClass" glib:is-gtype-struct-for="Dialog"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="WindowClass" c:type="GtkWindowClass"/> </field> <field name="response"> <callback name="response"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkDialog</doc> <type name="Dialog" c:type="GtkDialog*"/> </parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="close"> <callback name="close"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="dialog" transfer-ownership="none"> <type name="Dialog" c:type="GtkDialog*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <bitfield name="DialogFlags" glib:type-name="GtkDialogFlags" glib:get-type="gtk_dialog_flags_get_type" c:type="GtkDialogFlags"> <doc xml:space="preserve">Flags used to influence dialog construction.</doc> <member name="modal" value="1" c:identifier="GTK_DIALOG_MODAL" glib:nick="modal"> <doc xml:space="preserve">Make the constructed dialog modal, see gtk_window_set_modal()</doc> </member> <member name="destroy_with_parent" value="2" c:identifier="GTK_DIALOG_DESTROY_WITH_PARENT" glib:nick="destroy-with-parent"> <doc xml:space="preserve">Destroy the dialog when its parent is destroyed, see gtk_window_set_destroy_with_parent()</doc> </member> <member name="use_header_bar" value="4" c:identifier="GTK_DIALOG_USE_HEADER_BAR" glib:nick="use-header-bar"> <doc xml:space="preserve">Create dialog with actions in header bar instead of action area. Since 3.12.</doc> </member> </bitfield> <record name="DialogPrivate" c:type="GtkDialogPrivate" disguised="1"> </record> <enumeration name="DirectionType" glib:type-name="GtkDirectionType" glib:get-type="gtk_direction_type_get_type" c:type="GtkDirectionType"> <doc xml:space="preserve">Focus movement types.</doc> <member name="tab_forward" value="0" c:identifier="GTK_DIR_TAB_FORWARD" glib:nick="tab-forward"> <doc xml:space="preserve">Move forward.</doc> </member> <member name="tab_backward" value="1" c:identifier="GTK_DIR_TAB_BACKWARD" glib:nick="tab-backward"> <doc xml:space="preserve">Move backward.</doc> </member> <member name="up" value="2" c:identifier="GTK_DIR_UP" glib:nick="up"> <doc xml:space="preserve">Move up.</doc> </member> <member name="down" value="3" c:identifier="GTK_DIR_DOWN" glib:nick="down"> <doc xml:space="preserve">Move down.</doc> </member> <member name="left" value="4" c:identifier="GTK_DIR_LEFT" glib:nick="left"> <doc xml:space="preserve">Move left.</doc> </member> <member name="right" value="5" c:identifier="GTK_DIR_RIGHT" glib:nick="right"> <doc xml:space="preserve">Move right.</doc> </member> </enumeration> <enumeration name="DragResult" glib:type-name="GtkDragResult" glib:get-type="gtk_drag_result_get_type" c:type="GtkDragResult"> <doc xml:space="preserve">Gives an indication why a drag operation failed. The value can by obtained by connecting to the #GtkWidget::drag-failed signal.</doc> <member name="success" value="0" c:identifier="GTK_DRAG_RESULT_SUCCESS" glib:nick="success"> <doc xml:space="preserve">The drag operation was successful.</doc> </member> <member name="no_target" value="1" c:identifier="GTK_DRAG_RESULT_NO_TARGET" glib:nick="no-target"> <doc xml:space="preserve">No suitable drag target.</doc> </member> <member name="user_cancelled" value="2" c:identifier="GTK_DRAG_RESULT_USER_CANCELLED" glib:nick="user-cancelled"> <doc xml:space="preserve">The user cancelled the drag operation.</doc> </member> <member name="timeout_expired" value="3" c:identifier="GTK_DRAG_RESULT_TIMEOUT_EXPIRED" glib:nick="timeout-expired"> <doc xml:space="preserve">The drag operation timed out.</doc> </member> <member name="grab_broken" value="4" c:identifier="GTK_DRAG_RESULT_GRAB_BROKEN" glib:nick="grab-broken"> <doc xml:space="preserve">The pointer or keyboard grab used for the drag operation was broken.</doc> </member> <member name="error" value="5" c:identifier="GTK_DRAG_RESULT_ERROR" glib:nick="error"> <doc xml:space="preserve">The drag operation failed due to some unspecified error.</doc> </member> </enumeration> <class name="DrawingArea" c:symbol-prefix="drawing_area" c:type="GtkDrawingArea" parent="Widget" glib:type-name="GtkDrawingArea" glib:get-type="gtk_drawing_area_get_type" glib:type-struct="DrawingAreaClass"> <doc xml:space="preserve">The #GtkDrawingArea widget is used for creating custom user interface elements. Itâs essentially a blank widget; you can draw on it. After creating a drawing area, the application may want to connect to: - Mouse and button press signals to respond to input from the user. (Use gtk_widget_add_events() to enable events you wish to receive.) - The #GtkWidget::realize signal to take any necessary actions when the widget is instantiated on a particular display. (Create GDK resources in response to this signal.) - The #GtkWidget::size-allocate signal to take any necessary actions when the widget changes size. - The #GtkWidget::draw signal to handle redrawing the contents of the widget. The following code portion demonstrates using a drawing area to display a circle in the normal widget foreground color. Note that GDK automatically clears the exposed area before sending the expose event, and that drawing is implicitly clipped to the exposed area. If you want to have a theme-provided background, you need to call gtk_render_background() in your ::draw method. ## Simple GtkDrawingArea usage |[<!-- language="C" --> gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) { guint width, height; GdkRGBA color; GtkStyleContext *context; context = gtk_widget_get_style_context (widget); width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); gtk_render_background (context, cr, 0, 0, width, height); cairo_arc (cr, width / 2.0, height / 2.0, MIN (width, height) / 2.0, 0, 2 * G_PI); gtk_style_context_get_color (context, gtk_style_context_get_state (context), &color); gdk_cairo_set_source_rgba (cr, &color); cairo_fill (cr); return FALSE; } [...] GtkWidget *drawing_area = gtk_drawing_area_new (); gtk_widget_set_size_request (drawing_area, 100, 100); g_signal_connect (G_OBJECT (drawing_area), "draw", G_CALLBACK (draw_callback), NULL); ]| Draw signals are normally delivered when a drawing area first comes onscreen, or when itâs covered by another window and then uncovered. You can also force an expose event by adding to the âdamage regionâ of the drawing areaâs window; gtk_widget_queue_draw_area() and gdk_window_invalidate_rect() are equally good ways to do this. Youâll then get a draw signal for the invalid region. The available routines for drawing are documented on the [GDK Drawing Primitives][gdk3-Cairo-Interaction] page and the cairo documentation. To receive mouse events on a drawing area, you will need to enable them with gtk_widget_add_events(). To receive keyboard events, you will need to set the âcan-focusâ property on the drawing area, and you should probably draw some user-visible indication that the drawing area is focused. Use gtk_widget_has_focus() in your expose event handler to decide whether to draw the focus indicator. See gtk_render_focus() for one way to draw focus.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_drawing_area_new"> <doc xml:space="preserve">Creates a new drawing area.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkDrawingArea</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="widget"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="dummy" readable="0" private="1"> <type name="gpointer" c:type="gpointer"/> </field> </class> <record name="DrawingAreaClass" c:type="GtkDrawingAreaClass" glib:is-gtype-struct-for="DrawingArea"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <interface name="Editable" c:symbol-prefix="editable" c:type="GtkEditable" glib:type-name="GtkEditable" glib:get-type="gtk_editable_get_type" glib:type-struct="EditableInterface"> <doc xml:space="preserve">The #GtkEditable interface is an interface which should be implemented by text editing widgets, such as #GtkEntry and #GtkSpinButton. It contains functions for generically manipulating an editable widget, a large number of action signals used for key bindings, and several signals that an application can connect to to modify the behavior of a widget. As an example of the latter usage, by connecting the following handler to #GtkEditable::insert-text, an application can convert all entry into a widget into uppercase. ## Forcing entry to uppercase. |[<!-- language="C" --> #include <ctype.h>; void insert_text_handler (GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer data) { gchar *result = g_utf8_strup (text, length); g_signal_handlers_block_by_func (editable, (gpointer) insert_text_handler, data); gtk_editable_insert_text (editable, result, length, position); g_signal_handlers_unblock_by_func (editable, (gpointer) insert_text_handler, data); g_signal_stop_emission_by_name (editable, "insert_text"); g_free (result); } ]|</doc> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="delete_text" invoker="delete_text"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="do_delete_text" invoker="delete_text"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="do_insert_text" invoker="insert_text"> <doc xml:space="preserve">Inserts @new_text_length bytes of @new_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="new_text" transfer-ownership="none"> <doc xml:space="preserve">the text to append</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text_length" transfer-ownership="none"> <doc xml:space="preserve">the length of the text in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="position" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location of the position text will be inserted at</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_chars" invoker="get_chars"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start of text</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end of text</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_position" invoker="get_position"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the cursor position</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_selection_bounds" invoker="get_selection_bounds"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an area is selected, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the starting position, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="end_pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the end position, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_text" invoker="insert_text"> <doc xml:space="preserve">Inserts @new_text_length bytes of @new_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="new_text" transfer-ownership="none"> <doc xml:space="preserve">the text to append</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text_length" transfer-ownership="none"> <doc xml:space="preserve">the length of the text in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="position" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location of the position text will be inserted at</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_position" invoker="set_position"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position of the cursor</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_selection_bounds" invoker="select_region"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start of region</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end of region</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <method name="copy_clipboard" c:identifier="gtk_editable_copy_clipboard"> <doc xml:space="preserve">Copies the contents of the currently selected content in the editable and puts it on the clipboard.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> </parameters> </method> <method name="cut_clipboard" c:identifier="gtk_editable_cut_clipboard"> <doc xml:space="preserve">Removes the contents of the currently selected content in the editable and puts it on the clipboard.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> </parameters> </method> <method name="delete_selection" c:identifier="gtk_editable_delete_selection"> <doc xml:space="preserve">Deletes the currently selected text of the editable. This call doesnât do anything if there is no selected text.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> </parameters> </method> <method name="delete_text" c:identifier="gtk_editable_delete_text"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_chars" c:identifier="gtk_editable_get_chars"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start of text</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end of text</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_editable" c:identifier="gtk_editable_get_editable"> <doc xml:space="preserve">Retrieves whether @editable is editable. See gtk_editable_set_editable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @editable is editable.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> </parameters> </method> <method name="get_position" c:identifier="gtk_editable_get_position"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the cursor position</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> </parameters> </method> <method name="get_selection_bounds" c:identifier="gtk_editable_get_selection_bounds"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an area is selected, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the starting position, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="end_pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the end position, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="insert_text" c:identifier="gtk_editable_insert_text"> <doc xml:space="preserve">Inserts @new_text_length bytes of @new_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="new_text" transfer-ownership="none"> <doc xml:space="preserve">the text to append</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text_length" transfer-ownership="none"> <doc xml:space="preserve">the length of the text in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="position" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location of the position text will be inserted at</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="paste_clipboard" c:identifier="gtk_editable_paste_clipboard"> <doc xml:space="preserve">Pastes the content of the clipboard to the current position of the cursor in the editable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> </parameters> </method> <method name="select_region" c:identifier="gtk_editable_select_region"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start of region</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end of region</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_editable" c:identifier="gtk_editable_set_editable"> <doc xml:space="preserve">Determines if the user can edit the text in the editable widget or not.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="is_editable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the user is allowed to edit the text in the widget</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_position" c:identifier="gtk_editable_set_position"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position of the cursor</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <glib:signal name="changed" when="last"> <doc xml:space="preserve">The ::changed signal is emitted at the end of a single user-visible operation on the contents of the #GtkEditable. 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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="delete-text" when="last"> <doc xml:space="preserve">This signal is 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 gtk_editable_delete_text().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">the starting position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">the end position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="insert-text" when="last"> <doc xml:space="preserve">This signal is 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="new_text" transfer-ownership="none"> <doc xml:space="preserve">the new text to insert</doc> <type name="utf8" c:type="gchar*"/> </parameter> <parameter name="new_text_length" transfer-ownership="none"> <doc xml:space="preserve">the length of the new text, in bytes, or -1 if new_text is nul-terminated</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="position" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gpointer"/> </parameter> </parameters> </glib:signal> </interface> <record name="EditableInterface" c:type="GtkEditableInterface" glib:is-gtype-struct-for="Editable"> <field name="base_iface"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="insert_text"> <callback name="insert_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> <parameter name="new_text" transfer-ownership="none"> <doc xml:space="preserve">the text to append</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text_length" transfer-ownership="none"> <doc xml:space="preserve">the length of the text in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="position" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location of the position text will be inserted at</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="delete_text"> <callback name="delete_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <type name="Editable" c:type="GtkEditable*"/> </parameter> </parameters> </callback> </field> <field name="do_insert_text"> <callback name="do_insert_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> <parameter name="new_text" transfer-ownership="none"> <doc xml:space="preserve">the text to append</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text_length" transfer-ownership="none"> <doc xml:space="preserve">the length of the text in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="position" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location of the position text will be inserted at</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="do_delete_text"> <callback name="do_delete_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="get_chars"> <callback name="get_chars"> <return-value transfer-ownership="full"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start of text</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end of text</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="set_selection_bounds"> <callback name="set_selection_bounds"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> <parameter name="start_pos" transfer-ownership="none"> <doc xml:space="preserve">start of region</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_pos" transfer-ownership="none"> <doc xml:space="preserve">end of region</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="get_selection_bounds"> <callback name="get_selection_bounds"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an area is selected, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> <parameter name="start_pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the starting position, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="end_pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the end position, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="set_position"> <callback name="set_position"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position of the cursor</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="get_position"> <callback name="get_position"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the cursor position</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="editable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEditable</doc> <type name="Editable" c:type="GtkEditable*"/> </parameter> </parameters> </callback> </field> </record> <class name="Entry" c:symbol-prefix="entry" c:type="GtkEntry" parent="Widget" glib:type-name="GtkEntry" glib:get-type="gtk_entry_get_type" glib:type-struct="EntryClass"> <doc xml:space="preserve">The #GtkEntry widget is a single line text entry widget. A fairly large set of key bindings are supported by default. If the entered text is longer than the allocation of the widget, the widget will scroll so that the cursor position is visible. When using an entry for passwords and other sensitive information, it can be put into âpassword modeâ using gtk_entry_set_visibility(). In this mode, entered text is displayed using a âinvisibleâ character. By default, GTK+ picks the best invisible character that is available in the current font, but it can be changed with gtk_entry_set_invisible_char(). Since 2.16, GTK+ displays a warning when Caps Lock or input methods might interfere with entering text in a password entry. The warning can be turned off with the #GtkEntry:caps-lock-warning property. Since 2.16, GtkEntry has the ability to display progress or activity information behind the text. To make an entry display such information, use gtk_entry_set_progress_fraction() or gtk_entry_set_progress_pulse_step(). Additionally, GtkEntry can show icons at either side of the entry. These icons can be activatable by clicking, can be set up as drag source and can have tooltips. To add an icon, use gtk_entry_set_icon_from_gicon() or one of the various other functions that set an icon from a stock id, an icon name or a pixbuf. To trigger an action when the user clicks an icon, connect to the #GtkEntry::icon-press signal. To allow DND operations from an icon, use gtk_entry_set_icon_drag_source(). To set a tooltip on an icon, use gtk_entry_set_icon_tooltip_text() or the corresponding function for markup. Note that functionality or information that is only available by clicking on an icon in an entry may not be accessible at all to users which are not able to use a mouse or other pointing device. It is therefore recommended that any such functionality should also be available by other means, e.g. via the context menu of the entry. # CSS nodes |[<!-- language="plain" --> entry âââ image.left âââ image.right âââ undershoot.left âââ undershoot.right âââ [selection] âââ [progress[.pulse]] â°ââ [window.popup] ]| GtkEntry has a main node with the name entry. Depending on the properties of the entry, the style classes .read-only and .flat may appear. The style classes .warning and .error may also be used with entries. When the entry shows icons, it adds subnodes with the name image and the style class .left or .right, depending on where the icon appears. When the entry has a selection, it adds a subnode with the name selection. When the entry shows progress, it adds a subnode with the name progress. The node has the style class .pulse when the shown progress is pulsing. The CSS node for a context menu is added as a subnode below entry as well. The undershoot nodes are used to draw the underflow indication when content is scrolled out of view. These nodes get the .left and .right style classes added depending on where the indication is drawn. When touch is used and touch selection handles are shown, they are using CSS nodes with name cursor-handle. They get the .top or .bottom style class depending on where they are shown in relation to the selection. If there is just a single handle for the text cursor, it gets the style class .insertion-cursor.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="CellEditable"/> <implements name="Editable"/> <constructor name="new" c:identifier="gtk_entry_new"> <doc xml:space="preserve">Creates a new entry.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkEntry.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_buffer" c:identifier="gtk_entry_new_with_buffer" version="2.18"> <doc xml:space="preserve">Creates a new entry with the specified text buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkEntry</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">The buffer to use for the new #GtkEntry.</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </parameter> </parameters> </constructor> <virtual-method name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="backspace"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="copy_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="cut_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="delete_from_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <type name="DeleteType" c:type="GtkDeleteType"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_frame_size"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_text_area_size"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_at_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_emoji"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="move_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="paste_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="populate_popup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="popup" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="toggle_overwrite"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_activates_default" c:identifier="gtk_entry_get_activates_default"> <doc xml:space="preserve">Retrieves the value set by gtk_entry_set_activates_default().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the entry will activate the default widget</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_alignment" c:identifier="gtk_entry_get_alignment" version="2.4"> <doc xml:space="preserve">Gets the value set by gtk_entry_set_alignment().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the alignment</doc> <type name="gfloat" c:type="gfloat"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_attributes" c:identifier="gtk_entry_get_attributes" version="3.6"> <doc xml:space="preserve">Gets the attribute list that was set on the entry using gtk_entry_set_attributes(), if any.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the attribute list, or %NULL if none was set.</doc> <type name="Pango.AttrList" c:type="PangoAttrList*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_buffer" c:identifier="gtk_entry_get_buffer" version="2.18"> <doc xml:space="preserve">Get the #GtkEntryBuffer object which holds the text for this widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntryBuffer object.</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_completion" c:identifier="gtk_entry_get_completion" version="2.4"> <doc xml:space="preserve">Returns the auxiliary completion object currently in use by @entry.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The auxiliary completion object currently in use by @entry.</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_current_icon_drag_source" c:identifier="gtk_entry_get_current_icon_drag_source" version="2.16"> <doc xml:space="preserve">Returns the index of the icon which is the source of the current DND operation, or -1. This function is meant to be used in a #GtkWidget::drag-data-get callback.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">index of the icon which is the source of the current DND operation, or -1.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_cursor_hadjustment" c:identifier="gtk_entry_get_cursor_hadjustment" version="2.12"> <doc xml:space="preserve">Retrieves the horizontal cursor adjustment for the entry. See gtk_entry_set_cursor_hadjustment().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the horizontal cursor adjustment, or %NULL if none has been set.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_has_frame" c:identifier="gtk_entry_get_has_frame"> <doc xml:space="preserve">Gets the value set by gtk_entry_set_has_frame().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the entry has a beveled frame</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_icon_activatable" c:identifier="gtk_entry_get_icon_activatable" version="2.16"> <doc xml:space="preserve">Returns whether the icon is activatable.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the icon is activatable.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_icon_area" c:identifier="gtk_entry_get_icon_area" version="3.0"> <doc xml:space="preserve">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. See also gtk_entry_get_text_area()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="icon_area" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">Return location for the iconâs area</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_icon_at_pos" c:identifier="gtk_entry_get_icon_at_pos" version="2.16"> <doc xml:space="preserve">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 #GtkWidget::query-tooltip signal handler.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index of the icon at the given position, or -1</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x coordinate of the position to find</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y coordinate of the position to find</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_icon_gicon" c:identifier="gtk_entry_get_icon_gicon" version="2.16"> <doc xml:space="preserve">Retrieves the #GIcon used for the icon, or %NULL if there is no icon or if the icon was set by some other method (e.g., by stock, pixbuf, or icon name).</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #GIcon, or %NULL if no icon is set or if the icon is not a #GIcon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_icon_name" c:identifier="gtk_entry_get_icon_name" version="2.16"> <doc xml:space="preserve">Retrieves the icon name used for the icon, or %NULL if there is no icon or if the icon was set by some other method (e.g., by pixbuf, stock or gicon).</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">An icon name, or %NULL if no icon is set or if the icon wasnât set from an icon name</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_icon_pixbuf" c:identifier="gtk_entry_get_icon_pixbuf" version="2.16"> <doc xml:space="preserve">Retrieves the image used for the icon. Unlike the other methods of setting and getting icon data, this method will work regardless of whether the icon was set using a #GdkPixbuf, a #GIcon, a stock item, or an icon name.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #GdkPixbuf, or %NULL if no icon is set for this position.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_icon_sensitive" c:identifier="gtk_entry_get_icon_sensitive" version="2.16"> <doc xml:space="preserve">Returns whether the icon appears sensitive or insensitive.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the icon is sensitive.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_icon_stock" c:identifier="gtk_entry_get_icon_stock" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Retrieves the stock id used for the icon, or %NULL if there is no icon or if the icon was set by some other method (e.g., by pixbuf, icon name or gicon).</doc> <doc-deprecated xml:space="preserve">Use gtk_entry_get_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A stock id, or %NULL if no icon is set or if the icon wasnât set from a stock id</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_icon_storage_type" c:identifier="gtk_entry_get_icon_storage_type" version="2.16"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">image representation being used</doc> <type name="ImageType" c:type="GtkImageType"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_icon_tooltip_markup" c:identifier="gtk_entry_get_icon_tooltip_markup" version="2.16"> <doc xml:space="preserve">Gets the contents of the tooltip on the icon at the specified position in @entry.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the tooltip text, or %NULL. Free the returned string with g_free() when done.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">the icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_icon_tooltip_text" c:identifier="gtk_entry_get_icon_tooltip_text" version="2.16"> <doc xml:space="preserve">Gets the contents of the tooltip on the icon at the specified position in @entry.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the tooltip text, or %NULL. Free the returned string with g_free() when done.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">the icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> </parameters> </method> <method name="get_inner_border" c:identifier="gtk_entry_get_inner_border" version="2.10" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">This function returns the entryâs #GtkEntry:inner-border property. See gtk_entry_set_inner_border() for more information.</doc> <doc-deprecated xml:space="preserve">Use the standard border and padding CSS properties (through objects like #GtkStyleContext and #GtkCssProvider); the value returned by this function is ignored by #GtkEntry.</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the entryâs #GtkBorder, or %NULL if none was set.</doc> <type name="Border" c:type="const GtkBorder*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_input_hints" c:identifier="gtk_entry_get_input_hints" version="3.6"> <doc xml:space="preserve">Gets the value of the #GtkEntry:input-hints property.</doc> <return-value transfer-ownership="none"> <type name="InputHints" c:type="GtkInputHints"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_input_purpose" c:identifier="gtk_entry_get_input_purpose" version="3.6"> <doc xml:space="preserve">Gets the value of the #GtkEntry:input-purpose property.</doc> <return-value transfer-ownership="none"> <type name="InputPurpose" c:type="GtkInputPurpose"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_invisible_char" c:identifier="gtk_entry_get_invisible_char"> <doc xml:space="preserve">Retrieves the character displayed in place of the real characters for entries with visibility set to false. See gtk_entry_set_invisible_char().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current invisible char, or 0, if the entry does not show invisible text at all.</doc> <type name="gunichar" c:type="gunichar"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_layout" c:identifier="gtk_entry_get_layout"> <doc xml:space="preserve">Gets the #PangoLayout used to display the entry. The layout is useful to e.g. convert text positions to pixel positions, in combination with gtk_entry_get_layout_offsets(). The returned layout is owned by the entry and must not be modified or freed by the caller. Keep in mind that the layout text may contain a preedit string, so gtk_entry_layout_index_to_text_index() and gtk_entry_text_index_to_layout_index() are needed to convert byte indices in the layout to byte indices in the entry contents.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #PangoLayout for this entry</doc> <type name="Pango.Layout" c:type="PangoLayout*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_layout_offsets" c:identifier="gtk_entry_get_layout_offsets"> <doc xml:space="preserve">Obtains the position of the #PangoLayout used to render text in the entry, in widget coordinates. Useful if you want to line up the text in an entry with some other text, e.g. when using the entry to implement editable cells in a sheet widget. Also useful to convert mouse events into coordinates inside the #PangoLayout, e.g. to take some action if some part of the entry text is clicked. Note that as the user scrolls around in the entry the offsets will change; youâll need to connect to the ânotify::scroll-offsetâ signal to track this. Remember when using the #PangoLayout functions you need to convert to and from pixels using PANGO_PIXELS() or #PANGO_SCALE. Keep in mind that the layout text may contain a preedit string, so gtk_entry_layout_index_to_text_index() and gtk_entry_text_index_to_layout_index() are needed to convert byte indices in the layout to byte indices in the entry contents.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store Y offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_max_length" c:identifier="gtk_entry_get_max_length"> <doc xml:space="preserve">Retrieves the maximum allowed length of the text in @entry. See gtk_entry_set_max_length(). This is equivalent to getting @entry's #GtkEntryBuffer and calling gtk_entry_buffer_get_max_length() on it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the maximum allowed number of characters in #GtkEntry, or 0 if there is no maximum.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_max_width_chars" c:identifier="gtk_entry_get_max_width_chars" version="3.12"> <doc xml:space="preserve">Retrieves the desired maximum width of @entry, in characters. See gtk_entry_set_max_width_chars().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the maximum width of the entry, in characters</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_overwrite_mode" c:identifier="gtk_entry_get_overwrite_mode" version="2.14"> <doc xml:space="preserve">Gets the value set by gtk_entry_set_overwrite_mode().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the text is overwritten when typing.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_placeholder_text" c:identifier="gtk_entry_get_placeholder_text" version="3.2"> <doc xml:space="preserve">Retrieves the text that will be displayed when @entry is empty and unfocused</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_progress_fraction" c:identifier="gtk_entry_get_progress_fraction" version="2.16"> <doc xml:space="preserve">Returns the current fraction of the task thatâs been completed. See gtk_entry_set_progress_fraction().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a fraction from 0.0 to 1.0</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_progress_pulse_step" c:identifier="gtk_entry_get_progress_pulse_step" version="2.16"> <doc xml:space="preserve">Retrieves the pulse step set with gtk_entry_set_progress_pulse_step().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a fraction from 0.0 to 1.0</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_tabs" c:identifier="gtk_entry_get_tabs" version="3.10"> <doc xml:space="preserve">Gets the tabstops that were set on the entry using gtk_entry_set_tabs(), if any.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the tabstops, or %NULL if none was set.</doc> <type name="Pango.TabArray" c:type="PangoTabArray*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_text" c:identifier="gtk_entry_get_text"> <doc xml:space="preserve">Retrieves the contents of the entry widget. See also gtk_editable_get_chars(). This is equivalent to getting @entry's #GtkEntryBuffer and calling gtk_entry_buffer_get_text() on it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a pointer to the contents of the widget as a string. This string points to internally allocated storage in the widget and must not be freed, modified or stored.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_text_area" c:identifier="gtk_entry_get_text_area" version="3.0"> <doc xml:space="preserve">Gets the area where the entryâs text is drawn. This function is useful when drawing something to the entry in a draw callback. If the entry is not realized, @text_area is filled with zeros. See also gtk_entry_get_icon_area().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="text_area" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">Return location for the text area.</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_text_length" c:identifier="gtk_entry_get_text_length" version="2.14"> <doc xml:space="preserve">Retrieves the current length of the text in @entry. This is equivalent to getting @entry's #GtkEntryBuffer and calling gtk_entry_buffer_get_length() on it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current number of characters in #GtkEntry, or 0 if there are none.</doc> <type name="guint16" c:type="guint16"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_visibility" c:identifier="gtk_entry_get_visibility"> <doc xml:space="preserve">Retrieves whether the text in @entry is visible. See gtk_entry_set_visibility().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the text is currently visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="get_width_chars" c:identifier="gtk_entry_get_width_chars"> <doc xml:space="preserve">Gets the value set by gtk_entry_set_width_chars().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">number of chars to request space for, or negative if unset</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="grab_focus_without_selecting" c:identifier="gtk_entry_grab_focus_without_selecting" version="3.16"> <doc xml:space="preserve">Causes @entry to have keyboard focus. It behaves like 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="im_context_filter_keypress" c:identifier="gtk_entry_im_context_filter_keypress" version="2.22"> <doc xml:space="preserve">Allow the #GtkEntry 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 gtk_im_context_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 #GtkEntry. See gtk_text_view_reset_im_context() for an example of use.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the input method handled the key event.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the key event</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </method> <method name="layout_index_to_text_index" c:identifier="gtk_entry_layout_index_to_text_index"> <doc xml:space="preserve">Converts from a position in the entryâs #PangoLayout (returned by gtk_entry_get_layout()) to a position in the entry contents (returned by gtk_entry_get_text()).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">byte index into the entry contents</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="layout_index" transfer-ownership="none"> <doc xml:space="preserve">byte index into the entry layout text</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="progress_pulse" c:identifier="gtk_entry_progress_pulse" version="2.16"> <doc xml:space="preserve">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 gtk_entry_set_progress_pulse_step()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="reset_im_context" c:identifier="gtk_entry_reset_im_context" version="2.22"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <method name="set_activates_default" c:identifier="gtk_entry_set_activates_default"> <doc xml:space="preserve">If @setting is %TRUE, pressing Enter in the @entry will activate the default widget for the window containing the entry. This usually means that the dialog box containing the entry will be closed, since the default widget is usually one of the dialog buttons. (For experts: if @setting is %TRUE, the entry calls gtk_window_activate_default() on the window containing the entry, in the default handler for the #GtkEntry::activate signal.)</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to activate windowâs default widget on Enter keypress</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_alignment" c:identifier="gtk_entry_set_alignment" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL layouts</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="set_attributes" c:identifier="gtk_entry_set_attributes" version="3.6"> <doc xml:space="preserve">Sets a #PangoAttrList; the attributes in the list are applied to the entry text.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="attrs" transfer-ownership="none"> <doc xml:space="preserve">a #PangoAttrList</doc> <type name="Pango.AttrList" c:type="PangoAttrList*"/> </parameter> </parameters> </method> <method name="set_buffer" c:identifier="gtk_entry_set_buffer" version="2.18"> <doc xml:space="preserve">Set the #GtkEntryBuffer object which holds the text for this widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </parameter> </parameters> </method> <method name="set_completion" c:identifier="gtk_entry_set_completion" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="completion" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The #GtkEntryCompletion or %NULL</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </parameter> </parameters> </method> <method name="set_cursor_hadjustment" c:identifier="gtk_entry_set_cursor_hadjustment" version="2.12"> <doc xml:space="preserve">Hooks up an adjustment to the cursor position in an entry, so that when the cursor is moved, the adjustment is scrolled to show that position. See gtk_scrolled_window_get_hadjustment() for a typical way of obtaining the adjustment. The adjustment has to be in pixel units and in the same coordinate system as the entry.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an adjustment which should be adjusted when the cursor is moved, or %NULL</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_has_frame" c:identifier="gtk_entry_set_has_frame"> <doc xml:space="preserve">Sets whether the entry has a beveled frame around it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">new value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_icon_activatable" c:identifier="gtk_entry_set_icon_activatable" version="2.16"> <doc xml:space="preserve">Sets whether the icon is activatable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the icon should be activatable</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_icon_drag_source" c:identifier="gtk_entry_set_icon_drag_source" version="2.16"> <doc xml:space="preserve">Sets up the icon at the given position so that GTK+ will start a drag operation when the user clicks and drags the icon. To handle the drag operation, you need to connect to the usual #GtkWidget::drag-data-get (or possibly #GtkWidget::drag-data-delete) signal, and use gtk_entry_get_current_icon_drag_source() in your signal handler to find out if the drag was started from an icon. By default, GTK+ uses the icon as the drag icon. You can use the #GtkWidget::drag-begin signal to set a different icon. Note that you have to use g_signal_connect_after() to ensure that your signal handler gets executed after the default handler.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="target_list" transfer-ownership="none"> <doc xml:space="preserve">the targets (data formats) in which the data can be provided</doc> <type name="TargetList" c:type="GtkTargetList*"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">a bitmask of the allowed drag actions</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> </parameters> </method> <method name="set_icon_from_gicon" c:identifier="gtk_entry_set_icon_from_gicon" version="2.16"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">The position at which to set the icon</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="icon" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The icon to set, or %NULL</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> </parameters> </method> <method name="set_icon_from_icon_name" c:identifier="gtk_entry_set_icon_from_icon_name" version="2.16"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">The position at which to set the icon</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">An icon name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_icon_from_pixbuf" c:identifier="gtk_entry_set_icon_from_pixbuf" version="2.16"> <doc xml:space="preserve">Sets the icon shown in the specified position using a pixbuf. If @pixbuf is %NULL, no icon will be shown in the specified position.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="pixbuf" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GdkPixbuf, or %NULL</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_icon_from_stock" c:identifier="gtk_entry_set_icon_from_stock" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the icon shown in the entry at the specified position from a stock image. If @stock_id is %NULL, no icon will be shown in the specified position.</doc> <doc-deprecated xml:space="preserve">Use gtk_entry_set_icon_from_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="stock_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The name of the stock item, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_icon_sensitive" c:identifier="gtk_entry_set_icon_sensitive" version="2.16"> <doc xml:space="preserve">Sets the sensitivity for the specified icon.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">A #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">Icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="sensitive" transfer-ownership="none"> <doc xml:space="preserve">Specifies whether the icon should appear sensitive or insensitive</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_icon_tooltip_markup" c:identifier="gtk_entry_set_icon_tooltip_markup" version="2.16"> <doc xml:space="preserve">Sets @tooltip as the contents of the tooltip for the icon at the specified position. @tooltip is assumed to be marked up with the [Pango text markup language][PangoMarkupFormat]. Use %NULL for @tooltip to remove an existing tooltip. See also gtk_widget_set_tooltip_markup() and gtk_entry_set_icon_tooltip_text().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">the icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="tooltip" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the contents of the tooltip for the icon, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_icon_tooltip_text" c:identifier="gtk_entry_set_icon_tooltip_text" version="2.16"> <doc xml:space="preserve">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 gtk_widget_set_tooltip_text() and gtk_entry_set_icon_tooltip_markup(). If you unset the widget tooltip via gtk_widget_set_tooltip_text() or gtk_widget_set_tooltip_markup(), this sets GtkWidget:has-tooltip to %FALSE, which suppresses icon tooltips too. You can resolve this by then calling gtk_widget_set_has_tooltip() to set GtkWidget:has-tooltip back to %TRUE, or setting at least one non-empty tooltip on any icon achieves the same result.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">the icon position</doc> <type name="EntryIconPosition" c:type="GtkEntryIconPosition"/> </parameter> <parameter name="tooltip" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the contents of the tooltip for the icon, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_inner_border" c:identifier="gtk_entry_set_inner_border" version="2.10" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets %entryâs inner-border property to @border, or clears it if %NULL is passed. The inner-border is the area around the entryâs text, but inside its frame. If set, this property overrides the inner-border style property. Overriding the style-provided border is useful when you want to do in-place editing of some text in a canvas or list widget, where pixel-exact positioning of the entry is important.</doc> <doc-deprecated xml:space="preserve">Use the standard border and padding CSS properties (through objects like #GtkStyleContext and #GtkCssProvider); the value set with this function is ignored by #GtkEntry.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="border" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkBorder, or %NULL</doc> <type name="Border" c:type="const GtkBorder*"/> </parameter> </parameters> </method> <method name="set_input_hints" c:identifier="gtk_entry_set_input_hints" version="3.6"> <doc xml:space="preserve">Sets the #GtkEntry:input-hints property, which allows input methods to fine-tune their behaviour.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="hints" transfer-ownership="none"> <doc xml:space="preserve">the hints</doc> <type name="InputHints" c:type="GtkInputHints"/> </parameter> </parameters> </method> <method name="set_input_purpose" c:identifier="gtk_entry_set_input_purpose" version="3.6"> <doc xml:space="preserve">Sets the #GtkEntry:input-purpose property which can be used by on-screen keyboards and other input methods to adjust their behaviour.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="purpose" transfer-ownership="none"> <doc xml:space="preserve">the purpose</doc> <type name="InputPurpose" c:type="GtkInputPurpose"/> </parameter> </parameters> </method> <method name="set_invisible_char" c:identifier="gtk_entry_set_invisible_char"> <doc xml:space="preserve">Sets the character to use in place of the actual text when gtk_entry_set_visibility() has been called to set text visibility to %FALSE. i.e. this is the character used in âpassword modeâ to show the user how many characters have been typed. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="ch" transfer-ownership="none"> <doc xml:space="preserve">a Unicode character</doc> <type name="gunichar" c:type="gunichar"/> </parameter> </parameters> </method> <method name="set_max_length" c:identifier="gtk_entry_set_max_length"> <doc xml:space="preserve">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 @entry's #GtkEntryBuffer and calling gtk_entry_buffer_set_max_length() on it. ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="max" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_max_width_chars" c:identifier="gtk_entry_set_max_width_chars" version="3.12"> <doc xml:space="preserve">Sets the desired maximum width in characters of @entry.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the new desired maximum width, in characters</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_overwrite_mode" c:identifier="gtk_entry_set_overwrite_mode" version="2.14"> <doc xml:space="preserve">Sets whether the text is overwritten when typing in the #GtkEntry.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="overwrite" transfer-ownership="none"> <doc xml:space="preserve">new value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_placeholder_text" c:identifier="gtk_entry_set_placeholder_text" version="3.2"> <doc xml:space="preserve">Sets text to be displayed in @entry when it is empty and unfocused. This can be used to give a visual hint of the expected contents of the #GtkEntry. Note that since the placeholder text gets removed when the entry received focus, using this feature is a bit problematic if the entry is given the initial focus in a window. Sometimes this can be worked around by delaying the initial focus setting until the first key event arrives.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string to be displayed when @entry is empty and unfocused, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_progress_fraction" c:identifier="gtk_entry_set_progress_fraction" version="2.16"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="fraction" transfer-ownership="none"> <doc xml:space="preserve">fraction of the task thatâs been completed</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_progress_pulse_step" c:identifier="gtk_entry_set_progress_pulse_step" version="2.16"> <doc xml:space="preserve">Sets the fraction of total entry width to move the progress bouncing block for each call to gtk_entry_progress_pulse().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="fraction" transfer-ownership="none"> <doc xml:space="preserve">fraction between 0.0 and 1.0</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_tabs" c:identifier="gtk_entry_set_tabs" version="3.10"> <doc xml:space="preserve">Sets a #PangoTabArray; the tabstops in the array are applied to the entry text.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="tabs" transfer-ownership="none"> <doc xml:space="preserve">a #PangoTabArray</doc> <type name="Pango.TabArray" c:type="PangoTabArray*"/> </parameter> </parameters> </method> <method name="set_text" c:identifier="gtk_entry_set_text"> <doc xml:space="preserve">Sets the text in the widget to the given value, replacing the current contents. See gtk_entry_buffer_set_text().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the new text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_visibility" c:identifier="gtk_entry_set_visibility"> <doc xml:space="preserve">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 gtk_entry_set_invisible_char(). Note that you probably want to set #GtkEntry: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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the contents of the entry are displayed as plaintext</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_width_chars" c:identifier="gtk_entry_set_width_chars"> <doc xml:space="preserve">Changes the size request of the entry 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 entry size.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">width in chars</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="text_index_to_layout_index" c:identifier="gtk_entry_text_index_to_layout_index"> <doc xml:space="preserve">Converts from a position in the entry contents (returned by gtk_entry_get_text()) to a position in the entryâs #PangoLayout (returned by gtk_entry_get_layout(), with text retrieved via pango_layout_get_text()).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">byte index into the entry layout text</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> <parameter name="text_index" transfer-ownership="none"> <doc xml:space="preserve">byte index into the entry contents</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="unset_invisible_char" c:identifier="gtk_entry_unset_invisible_char" version="2.16"> <doc xml:space="preserve">Unsets the invisible char previously set with gtk_entry_set_invisible_char(). So that the default invisible char is used again.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </instance-parameter> </parameters> </method> <property name="activates-default" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="attributes" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkEntryBuffer text, i.e. without the preedit string.</doc> <type name="Pango.AttrList"/> </property> <property name="buffer" writable="1" construct="1" transfer-ownership="none"> <type name="EntryBuffer"/> </property> <property name="caps-lock-warning" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether password entries will show a warning when Caps Lock is on. Note that the warning is shown using a secondary icon, and thus does not work if you are using the secondary icon position for some other purpose.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="completion" version="3.2" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The auxiliary completion object to use with the entry.</doc> <type name="EntryCompletion"/> </property> <property name="cursor-position" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="editable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-frame" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="im-module" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Which IM (input method) module should be used for this entry. See #GtkIMContext. Setting this to a non-%NULL value overrides the system-wide IM module setting. See the GtkSettings #GtkSettings:gtk-im-module property.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="inner-border" version="2.10" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets the text area's border between the text and the frame.</doc> <doc-deprecated xml:space="preserve">Use the standard border and padding CSS properties (through objects like #GtkStyleContext and #GtkCssProvider); the value of this style property is ignored.</doc-deprecated> <type name="Border"/> </property> <property name="input-hints" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Additional hints (beyond #GtkEntry:input-purpose) that allow input methods to fine-tune their behaviour.</doc> <type name="InputHints"/> </property> <property name="input-purpose" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkEntry:visibility.</doc> <type name="InputPurpose"/> </property> <property name="invisible-char" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The invisible character is used when masking entry contents (in \"password mode\")"). When it is not explicitly set with the #GtkEntry:invisible-char property, GTK+ determines the character to use from a list of possible candidates, depending on availability in the current font. This style property allows the theme to prepend a character to the list of candidates.</doc> <type name="guint" c:type="guint"/> </property> <property name="invisible-char-set" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the invisible char has been set for the #GtkEntry.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="max-length" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="max-width-chars" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The desired maximum width of the entry, in characters. If this property is set to -1, the width will be calculated automatically.</doc> <type name="gint" c:type="gint"/> </property> <property name="overwrite-mode" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If text is overwritten when typing in the #GtkEntry.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="placeholder-text" version="3.2" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text that will be displayed in the #GtkEntry when it is empty and unfocused.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="populate-all" version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If :populate-all is %TRUE, the #GtkEntry::populate-popup signal is also emitted for touch popups.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="primary-icon-activatable" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the primary icon is activatable. GTK+ emits the #GtkEntry::icon-press and #GtkEntry::icon-release signals only on sensitive, activatable icons. Sensitive, but non-activatable icons can be used for purely informational purposes.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="primary-icon-gicon" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GIcon to use for the primary icon for the entry.</doc> <type name="Gio.Icon"/> </property> <property name="primary-icon-name" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The icon name to use for the primary icon for the entry.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="primary-icon-pixbuf" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A pixbuf to use as the primary icon for the entry.</doc> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="primary-icon-sensitive" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the primary icon is sensitive. An insensitive icon appears grayed out. GTK+ does not emit the #GtkEntry::icon-press and #GtkEntry::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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="primary-icon-stock" version="2.16" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The stock id to use for the primary icon for the entry.</doc> <doc-deprecated xml:space="preserve">Use #GtkEntry:primary-icon-name instead.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="primary-icon-storage-type" version="2.16" transfer-ownership="none"> <doc xml:space="preserve">The representation which is used for the primary icon of the entry.</doc> <type name="ImageType"/> </property> <property name="primary-icon-tooltip-markup" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The contents of the tooltip on the primary icon, which is marked up with the [Pango text markup language][PangoMarkupFormat]. Also see gtk_entry_set_icon_tooltip_markup().</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="primary-icon-tooltip-text" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The contents of the tooltip on the primary icon. Also see gtk_entry_set_icon_tooltip_text().</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="progress-fraction" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The current fraction of the task that's been completed.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="progress-pulse-step" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The fraction of total entry width to move the progress bouncing block for each call to gtk_entry_progress_pulse().</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="scroll-offset" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="secondary-icon-activatable" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the secondary icon is activatable. GTK+ emits the #GtkEntry::icon-press and #GtkEntry::icon-release signals only on sensitive, activatable icons. Sensitive, but non-activatable icons can be used for purely informational purposes.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="secondary-icon-gicon" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GIcon to use for the secondary icon for the entry.</doc> <type name="Gio.Icon"/> </property> <property name="secondary-icon-name" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The icon name to use for the secondary icon for the entry.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="secondary-icon-pixbuf" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">An pixbuf to use as the secondary icon for the entry.</doc> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="secondary-icon-sensitive" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the secondary icon is sensitive. An insensitive icon appears grayed out. GTK+ does not emit the #GtkEntry::icon-press and #GtkEntry::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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="secondary-icon-stock" version="2.16" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The stock id to use for the secondary icon for the entry.</doc> <doc-deprecated xml:space="preserve">Use #GtkEntry:secondary-icon-name instead.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="secondary-icon-storage-type" version="2.16" transfer-ownership="none"> <doc xml:space="preserve">The representation which is used for the secondary icon of the entry.</doc> <type name="ImageType"/> </property> <property name="secondary-icon-tooltip-markup" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The contents of the tooltip on the secondary icon, which is marked up with the [Pango text markup language][PangoMarkupFormat]. Also see gtk_entry_set_icon_tooltip_markup().</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="secondary-icon-tooltip-text" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The contents of the tooltip on the secondary icon. Also see gtk_entry_set_icon_tooltip_text().</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="selection-bound" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="shadow-type" version="2.12" deprecated="1" deprecated-version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Which kind of shadow to draw around the entry when #GtkEntry:has-frame is set to %TRUE.</doc> <doc-deprecated xml:space="preserve">Use CSS to determine the style of the border; the value of this style property is ignored.</doc-deprecated> <type name="ShadowType"/> </property> <property name="show-emoji-icon" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="tabs" writable="1" transfer-ownership="none"> <type name="Pango.TabArray"/> </property> <property name="text" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="text-length" version="2.14" transfer-ownership="none"> <doc xml:space="preserve">The length of the text in the #GtkEntry.</doc> <type name="guint" c:type="guint"/> </property> <property name="truncate-multiline" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">When %TRUE, pasted multi-line text is truncated to the first line.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="visibility" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="width-chars" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="xalign" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL layouts.</doc> <type name="gfloat" c:type="gfloat"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="EntryPrivate" c:type="GtkEntryPrivate*"/> </field> <glib:signal name="activate" when="last" action="1"> <doc xml:space="preserve">The ::activate signal is emitted when the user hits the Enter key. While this signal is used as a [keybinding signal][GtkBindingSignal], it is also commonly used by applications to intercept activation of entries. The default bindings for this signal are all forms of the Enter key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="backspace" when="last" action="1"> <doc xml:space="preserve">The ::backspace signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. The default bindings for this signal are Backspace and Shift-Backspace.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="copy-clipboard" when="last" action="1"> <doc xml:space="preserve">The ::copy-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to copy the selection to the clipboard. The default bindings for this signal are Ctrl-c and Ctrl-Insert.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="cut-clipboard" when="last" action="1"> <doc xml:space="preserve">The ::cut-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cut the selection to the clipboard. The default bindings for this signal are Ctrl-x and Shift-Delete.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="delete-from-cursor" when="last" action="1"> <doc xml:space="preserve">The ::delete-from-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a text deletion. 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 Delete for deleting a character and Ctrl-Delete for deleting a word.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the granularity of the deletion, as a #GtkDeleteType</doc> <type name="DeleteType"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">the number of @type units to delete</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="icon-press" when="last" version="2.16"> <doc xml:space="preserve">The ::icon-press signal is emitted when an activatable icon is clicked.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">The position of the clicked icon</doc> <type name="EntryIconPosition"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the button press event</doc> <type name="Gdk.EventButton"/> </parameter> </parameters> </glib:signal> <glib:signal name="icon-release" when="last" version="2.16"> <doc xml:space="preserve">The ::icon-release signal is emitted on the button release from a mouse click over an activatable icon.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_pos" transfer-ownership="none"> <doc xml:space="preserve">The position of the clicked icon</doc> <type name="EntryIconPosition"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the button release event</doc> <type name="Gdk.EventButton"/> </parameter> </parameters> </glib:signal> <glib:signal name="insert-at-cursor" when="last" action="1"> <doc xml:space="preserve">The ::insert-at-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates the insertion of a fixed string at the cursor. This signal has no default bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="string" transfer-ownership="none"> <doc xml:space="preserve">the string to insert</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="insert-emoji" when="last" action="1" version="3.22.27"> <doc xml:space="preserve">The ::insert-emoji signal is a [keybinding signal][GtkBindingSignal] which gets emitted to present the Emoji chooser for the @entry. The default bindings for this signal are Ctrl-. and Ctrl-;</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="move-cursor" when="last" action="1"> <doc xml:space="preserve">The ::move-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement. 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 modifer does not. There are too many key combinations to list them all here. - Arrow keys move by individual characters/lines - Ctrl-arrow key combinations move by words/paragraphs - Home/End keys move to the ends of the buffer</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">the granularity of the move, as a #GtkMovementStep</doc> <type name="MovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">the number of @step units to move</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the move should extend the selection</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="paste-clipboard" when="last" action="1"> <doc xml:space="preserve">The ::paste-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to paste the contents of the clipboard into the text view. The default bindings for this signal are Ctrl-v and Shift-Insert.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="populate-popup" when="last"> <doc xml:space="preserve">The ::populate-popup signal gets emitted before showing the context menu of the entry. If you need to add items to the context menu, connect to this signal and append your items to the @widget, which will be a #GtkMenu in this case. If #GtkEntry:populate-all is %TRUE, this signal will also be emitted to populate touch popups. In this case, @widget will be a different container, e.g. a #GtkToolbar. The signal handler should not make assumptions about the type of @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the container that is being populated</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="preedit-changed" when="last" action="1" version="2.20"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="preedit" transfer-ownership="none"> <doc xml:space="preserve">the current preedit string</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="toggle-overwrite" when="last" action="1"> <doc xml:space="preserve">The ::toggle-overwrite signal is a [keybinding signal][GtkBindingSignal] which gets emitted to toggle the overwrite mode of the entry. The default bindings for this signal is Insert.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="EntryAccessible" c:symbol-prefix="entry_accessible" c:type="GtkEntryAccessible" parent="WidgetAccessible" glib:type-name="GtkEntryAccessible" glib:get-type="gtk_entry_accessible_get_type" glib:type-struct="EntryAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.EditableText"/> <implements name="Atk.Text"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="EntryAccessiblePrivate" c:type="GtkEntryAccessiblePrivate*"/> </field> </class> <record name="EntryAccessibleClass" c:type="GtkEntryAccessibleClass" glib:is-gtype-struct-for="EntryAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="EntryAccessiblePrivate" c:type="GtkEntryAccessiblePrivate" disguised="1"> </record> <class name="EntryBuffer" c:symbol-prefix="entry_buffer" c:type="GtkEntryBuffer" parent="GObject.Object" glib:type-name="GtkEntryBuffer" glib:get-type="gtk_entry_buffer_get_type" glib:type-struct="EntryBufferClass"> <doc xml:space="preserve">The #GtkEntryBuffer class contains the actual text displayed in a #GtkEntry widget. A single #GtkEntryBuffer object can be shared by multiple #GtkEntry widgets which will then share the same text content, but not the cursor position, visibility attributes, icon etc. #GtkEntryBuffer may be derived from. Such a derived class might allow text to be stored in an alternate location, such as non-pageable memory, useful in the case of important passwords. Or a derived class could integrate with an applicationâs concept of undo/redo.</doc> <constructor name="new" c:identifier="gtk_entry_buffer_new" version="2.18"> <doc xml:space="preserve">Create a new GtkEntryBuffer object. Optionally, specify initial text to set in the buffer.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A new GtkEntryBuffer object.</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </return-value> <parameters> <parameter name="initial_chars" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">initial buffer text, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_initial_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters in @initial_chars, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </constructor> <virtual-method name="delete_text" invoker="delete_text" version="2.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters deleted.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position at which to delete text</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters to delete</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="deleted_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_length" invoker="get_length" version="2.18"> <doc xml:space="preserve">Retrieves the length in characters of the buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters in the buffer.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_text"> <return-value transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="n_bytes" transfer-ownership="none"> <type name="gsize" c:type="gsize*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_text" invoker="insert_text" version="2.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters actually inserted.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position at which to insert text.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="chars" transfer-ownership="none"> <doc xml:space="preserve">the text to insert into the buffer.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the length of the text in characters, or -1</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="inserted_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="chars" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <method name="delete_text" c:identifier="gtk_entry_buffer_delete_text" version="2.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters deleted.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position at which to delete text</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters to delete</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="emit_deleted_text" c:identifier="gtk_entry_buffer_emit_deleted_text" version="2.18"> <doc xml:space="preserve">Used when subclassing #GtkEntryBuffer</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position at which text was deleted</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters deleted</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="emit_inserted_text" c:identifier="gtk_entry_buffer_emit_inserted_text" version="2.18"> <doc xml:space="preserve">Used when subclassing #GtkEntryBuffer</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position at which text was inserted</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="chars" transfer-ownership="none"> <doc xml:space="preserve">text that was inserted</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters inserted</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="get_bytes" c:identifier="gtk_entry_buffer_get_bytes" version="2.18"> <doc xml:space="preserve">Retrieves the length in bytes of the buffer. See gtk_entry_buffer_get_length().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The byte length of the buffer.</doc> <type name="gsize" c:type="gsize"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_length" c:identifier="gtk_entry_buffer_get_length" version="2.18"> <doc xml:space="preserve">Retrieves the length in characters of the buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters in the buffer.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_max_length" c:identifier="gtk_entry_buffer_get_max_length" version="2.18"> <doc xml:space="preserve">Retrieves the maximum allowed length of the text in @buffer. See gtk_entry_buffer_set_max_length().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the maximum allowed number of characters in #GtkEntryBuffer, or 0 if there is no maximum.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_text" c:identifier="gtk_entry_buffer_get_text" version="2.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> </parameters> </method> <method name="insert_text" c:identifier="gtk_entry_buffer_insert_text" version="2.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters actually inserted.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position at which to insert text.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="chars" transfer-ownership="none"> <doc xml:space="preserve">the text to insert into the buffer.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the length of the text in characters, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_max_length" c:identifier="gtk_entry_buffer_set_max_length" version="2.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="max_length" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_text" c:identifier="gtk_entry_buffer_set_text" version="2.18"> <doc xml:space="preserve">Sets the text in the buffer. This is roughly equivalent to calling gtk_entry_buffer_delete_text() and gtk_entry_buffer_insert_text(). Note that @n_chars is in characters, not in bytes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </instance-parameter> <parameter name="chars" transfer-ownership="none"> <doc xml:space="preserve">the new text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the number of characters in @text, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="length" version="2.18" transfer-ownership="none"> <doc xml:space="preserve">The length (in characters) of the text in buffer.</doc> <type name="guint" c:type="guint"/> </property> <property name="max-length" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The maximum length (in characters) of the text in the buffer.</doc> <type name="gint" c:type="gint"/> </property> <property name="text" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The contents of the buffer.</doc> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="EntryBufferPrivate" c:type="GtkEntryBufferPrivate*"/> </field> <glib:signal name="deleted-text" when="first" version="2.18"> <doc xml:space="preserve">This signal is emitted after text is deleted from the buffer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position the text was deleted at.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">The number of characters that were deleted.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="inserted-text" when="first" version="2.18"> <doc xml:space="preserve">This signal is emitted after text is inserted into the buffer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position the text was inserted at.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="chars" transfer-ownership="none"> <doc xml:space="preserve">The text that was inserted.</doc> <type name="utf8" c:type="gchar*"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">The number of characters that were inserted.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> </class> <record name="EntryBufferClass" c:type="GtkEntryBufferClass" glib:is-gtype-struct-for="EntryBuffer"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="inserted_text"> <callback name="inserted_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </parameter> <parameter name="position" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="chars" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="deleted_text"> <callback name="deleted_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </parameter> <parameter name="position" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="get_text"> <callback name="get_text"> <return-value transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </parameter> <parameter name="n_bytes" transfer-ownership="none"> <type name="gsize" c:type="gsize*"/> </parameter> </parameters> </callback> </field> <field name="get_length"> <callback name="get_length"> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters in the buffer.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </parameter> </parameters> </callback> </field> <field name="insert_text"> <callback name="insert_text"> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters actually inserted.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position at which to insert text.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="chars" transfer-ownership="none"> <doc xml:space="preserve">the text to insert into the buffer.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the length of the text in characters, or -1</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="delete_text"> <callback name="delete_text"> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of characters deleted.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryBuffer</doc> <type name="EntryBuffer" c:type="GtkEntryBuffer*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position at which to delete text</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters to delete</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="EntryBufferPrivate" c:type="GtkEntryBufferPrivate" disguised="1"> </record> <record name="EntryClass" c:type="GtkEntryClass" glib:is-gtype-struct-for="Entry"> <doc xml:space="preserve">Class structure for #GtkEntry. All virtual functions have a default implementation. Derived classes may set the virtual function pointers for the signal handlers to %NULL, but must keep @get_text_area_size and @get_frame_size non-%NULL; either use the default implementation, or provide a custom one.</doc> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="populate_popup"> <callback name="populate_popup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> <parameter name="popup" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </callback> </field> <field name="move_cursor"> <callback name="move_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="insert_at_cursor"> <callback name="insert_at_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> <parameter name="str" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="delete_from_cursor"> <callback name="delete_from_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> <parameter name="type" transfer-ownership="none"> <type name="DeleteType" c:type="GtkDeleteType"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="backspace"> <callback name="backspace"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </callback> </field> <field name="cut_clipboard"> <callback name="cut_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </callback> </field> <field name="copy_clipboard"> <callback name="copy_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </callback> </field> <field name="paste_clipboard"> <callback name="paste_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </callback> </field> <field name="toggle_overwrite"> <callback name="toggle_overwrite"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </callback> </field> <field name="get_text_area_size"> <callback name="get_text_area_size"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_frame_size"> <callback name="get_frame_size"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="insert_emoji"> <callback name="insert_emoji"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="EntryCompletion" c:symbol-prefix="entry_completion" c:type="GtkEntryCompletion" parent="GObject.Object" glib:type-name="GtkEntryCompletion" glib:get-type="gtk_entry_completion_get_type" glib:type-struct="EntryCompletionClass"> <doc xml:space="preserve">#GtkEntryCompletion is an auxiliary object to be used in conjunction with #GtkEntry to provide the completion functionality. It implements the #GtkCellLayout interface, to allow the user to add extra cells to the #GtkTreeView with completion matches. âCompletion functionalityâ means that when the user modifies the text in the entry, #GtkEntryCompletion checks which rows in the model match the current content of the entry, and displays a list of matches. By default, the matching is done by comparing the entry text case-insensitively against the text column of the model (see gtk_entry_completion_set_text_column()), but this can be overridden with a custom match function (see gtk_entry_completion_set_match_func()). When the user selects a completion, the content of the entry is updated. By default, the content of the entry is replaced by the text column of the model, but this can be overridden by connecting to the #GtkEntryCompletion::match-selected signal and updating the entry in the signal handler. Note that you should return %TRUE from the signal handler to suppress the default behaviour. To add completion functionality to an entry, use gtk_entry_set_completion(). In addition to regular completion matches, which will be inserted into the entry when they are selected, #GtkEntryCompletion also allows to display âactionsâ in the popup window. Their appearance is similar to menuitems, to differentiate them clearly from completion strings. When an action is selected, the #GtkEntryCompletion::action-activated signal is emitted. GtkEntryCompletion uses a #GtkTreeModelFilter model to represent the subset of the entire model that is currently matching. While the GtkEntryCompletion signals #GtkEntryCompletion::match-selected and #GtkEntryCompletion::cursor-on-match take the original model and an iter pointing to that model as arguments, other callbacks and signals (such as #GtkCellLayoutDataFuncs or #GtkCellArea::apply-attributes) will generally take the filter model as argument. As long as you are only calling gtk_tree_model_get(), this will make no difference to you. If for some reason, you need the original model, use gtk_tree_model_filter_get_model(). Donât forget to use gtk_tree_model_filter_convert_iter_to_child_iter() to obtain a matching iter.</doc> <implements name="Buildable"/> <implements name="CellLayout"/> <constructor name="new" c:identifier="gtk_entry_completion_new" version="2.4"> <doc xml:space="preserve">Creates a new #GtkEntryCompletion object.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkEntryCompletion object</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </return-value> </constructor> <constructor name="new_with_area" c:identifier="gtk_entry_completion_new_with_area" version="3.0"> <doc xml:space="preserve">Creates a new #GtkEntryCompletion object using the specified @area to layout cells in the underlying #GtkTreeViewColumn for the drop-down menu.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkEntryCompletion object</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellArea used to layout cells</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> </parameters> </constructor> <virtual-method name="action_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="cursor_on_match"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="model" transfer-ownership="none"> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_prefix"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="prefix" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="match_selected"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="model" transfer-ownership="none"> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="no_matches"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </virtual-method> <method name="complete" c:identifier="gtk_entry_completion_complete" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="compute_prefix" c:identifier="gtk_entry_completion_compute_prefix" version="3.4"> <doc xml:space="preserve">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 gtk_entry_completion_set_text_column() for details.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">The common prefix all rows starting with @key or %NULL if no row matches @key.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">the entry completion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">The text to complete for</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="delete_action" c:identifier="gtk_entry_completion_delete_action" version="2.4"> <doc xml:space="preserve">Deletes the action at @index_ from @completionâs action list. Note that @index_ is a relative position and the position of an action may have changed since it was inserted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the index of the item to delete</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_completion_prefix" c:identifier="gtk_entry_completion_get_completion_prefix" version="2.12"> <doc xml:space="preserve">Get the original text entered by the user that triggered the completion or %NULL if thereâs no completion ongoing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the prefix for the current completion</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_entry" c:identifier="gtk_entry_completion_get_entry" version="2.4"> <doc xml:space="preserve">Gets the entry @completion has been attached to.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The entry @completion has been attached to</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_inline_completion" c:identifier="gtk_entry_completion_get_inline_completion" version="2.6"> <doc xml:space="preserve">Returns whether the common prefix of the possible completions should be automatically inserted in the entry.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if inline completion is turned on</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_inline_selection" c:identifier="gtk_entry_completion_get_inline_selection" version="2.12"> <doc xml:space="preserve">Returns %TRUE if inline-selection mode is turned on.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if inline-selection mode is on</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_minimum_key_length" c:identifier="gtk_entry_completion_get_minimum_key_length" version="2.4"> <doc xml:space="preserve">Returns the minimum key length as set for @completion.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The currently used minimum key length</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_model" c:identifier="gtk_entry_completion_get_model" version="2.4"> <doc xml:space="preserve">Returns the model the #GtkEntryCompletion is using as data source. Returns %NULL if the model is unset.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #GtkTreeModel, or %NULL if none is currently being used</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_popup_completion" c:identifier="gtk_entry_completion_get_popup_completion" version="2.6"> <doc xml:space="preserve">Returns whether the completions should be presented in a popup window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if popup completion is turned on</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_popup_set_width" c:identifier="gtk_entry_completion_get_popup_set_width" version="2.8"> <doc xml:space="preserve">Returns whether the completion popup window will be resized to the width of the entry.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the popup window will be resized to the width of the entry</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_popup_single_match" c:identifier="gtk_entry_completion_get_popup_single_match" version="2.8"> <doc xml:space="preserve">Returns whether the completion popup window will appear even if there is only a single match.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the popup window will appear regardless of the number of matches</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="get_text_column" c:identifier="gtk_entry_completion_get_text_column" version="2.6"> <doc xml:space="preserve">Returns the column in the model of @completion to get strings from.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the column containing the strings</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="insert_action_markup" c:identifier="gtk_entry_completion_insert_action_markup" version="2.4"> <doc xml:space="preserve">Inserts an action in @completionâs action item list at position @index_ with markup @markup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the index of the item to insert</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="markup" transfer-ownership="none"> <doc xml:space="preserve">markup of the item to insert</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="insert_action_text" c:identifier="gtk_entry_completion_insert_action_text" version="2.4"> <doc xml:space="preserve">Inserts an action in @completionâs action item list at position @index_ with text @text. If you want the action item to have markup, use gtk_entry_completion_insert_action_markup(). Note that @index_ is a relative position in the list of actions and the position of an action can change when deleting a different action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the index of the item to insert</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text of the item to insert</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="insert_prefix" c:identifier="gtk_entry_completion_insert_prefix" version="2.6"> <doc xml:space="preserve">Requests a prefix insertion.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> </parameters> </method> <method name="set_inline_completion" c:identifier="gtk_entry_completion_set_inline_completion" version="2.6"> <doc xml:space="preserve">Sets whether the common prefix of the possible completions should be automatically inserted in the entry.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="inline_completion" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to do inline completion</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_inline_selection" c:identifier="gtk_entry_completion_set_inline_selection" version="2.12"> <doc xml:space="preserve">Sets whether it is possible to cycle through the possible completions inside the entry.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="inline_selection" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to do inline selection</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_match_func" c:identifier="gtk_entry_completion_set_match_func" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">the #GtkEntryCompletionMatchFunc to use</doc> <type name="EntryCompletionMatchFunc" c:type="GtkEntryCompletionMatchFunc"/> </parameter> <parameter name="func_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data for @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="func_notify" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notify for @func_data.</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_minimum_key_length" c:identifier="gtk_entry_completion_set_minimum_key_length" version="2.4"> <doc xml:space="preserve">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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">the minimum length of the key in order to start completing</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_model" c:identifier="gtk_entry_completion_set_model" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </method> <method name="set_popup_completion" c:identifier="gtk_entry_completion_set_popup_completion" version="2.6"> <doc xml:space="preserve">Sets whether the completions should be presented in a popup window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="popup_completion" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to do popup completion</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_popup_set_width" c:identifier="gtk_entry_completion_set_popup_set_width" version="2.8"> <doc xml:space="preserve">Sets whether the completion popup window will be resized to be the same width as the entry.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="popup_set_width" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the width of the popup the same as the entry</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_popup_single_match" c:identifier="gtk_entry_completion_set_popup_single_match" version="2.8"> <doc xml:space="preserve">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 [inline completion][GtkEntryCompletion--inline-completion].</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="popup_single_match" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the popup should appear even for a single match</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_text_column" c:identifier="gtk_entry_completion_set_text_column" version="2.4"> <doc xml:space="preserve">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 #GtkEntryCompletion:text-column property directly.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column in the model of @completion to get strings from</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="cell-area" version="3.0" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellArea used to layout cell renderers in the treeview column. If no area is specified when creating the entry completion with gtk_entry_completion_new_with_area() a horizontally oriented #GtkCellAreaBox will be used.</doc> <type name="CellArea"/> </property> <property name="inline-completion" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="inline-selection" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether the possible completions on the popup will appear in the entry as you navigate through them.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="minimum-key-length" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="model" writable="1" transfer-ownership="none"> <type name="TreeModel"/> </property> <property name="popup-completion" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether the possible completions should be shown in a popup window.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="popup-set-width" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether the completions popup window will be resized to the width of the entry.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="popup-single-match" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 [inline completion][GtkEntryCompletion--inline-completion].</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="text-column" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The column of the model containing the strings. Note that the strings must be UTF-8.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="EntryCompletionPrivate" c:type="GtkEntryCompletionPrivate*"/> </field> <glib:signal name="action-activated" when="last" version="2.4"> <doc xml:space="preserve">Gets emitted when an action is activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="index" transfer-ownership="none"> <doc xml:space="preserve">the index of the activated action</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="cursor-on-match" when="last" version="2.12"> <doc xml:space="preserve">Gets 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 gtk_entry_completion_set_model().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal has been handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel containing the matches</doc> <type name="TreeModel"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter positioned at the selected match</doc> <type name="TreeIter"/> </parameter> </parameters> </glib:signal> <glib:signal name="insert-prefix" when="last" version="2.6"> <doc xml:space="preserve">Gets 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 '/'.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal has been handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="prefix" transfer-ownership="none"> <doc xml:space="preserve">the common prefix of all possible completions</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="match-selected" when="last" version="2.4"> <doc xml:space="preserve">Gets 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 gtk_entry_completion_set_model().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal has been handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel containing the matches</doc> <type name="TreeModel"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter positioned at the selected match</doc> <type name="TreeIter"/> </parameter> </parameters> </glib:signal> <glib:signal name="no-matches" when="last" version="3.14"> <doc xml:space="preserve">Gets emitted when the filter model has zero number of rows in completion_complete method. (In other words when GtkEntryCompletion is out of suggestions)</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="EntryCompletionClass" c:type="GtkEntryCompletionClass" glib:is-gtype-struct-for="EntryCompletion"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="match_selected"> <callback name="match_selected"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </parameter> <parameter name="model" transfer-ownership="none"> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="action_activated"> <callback name="action_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </parameter> <parameter name="index_" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="insert_prefix"> <callback name="insert_prefix"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </parameter> <parameter name="prefix" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="cursor_on_match"> <callback name="cursor_on_match"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </parameter> <parameter name="model" transfer-ownership="none"> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="no_matches"> <callback name="no_matches"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="completion" transfer-ownership="none"> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved0" introspectable="0"> <callback name="_gtk_reserved0"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="EntryCompletionMatchFunc" c:type="GtkEntryCompletionMatchFunc"> <doc xml:space="preserve">A function which decides whether the row indicated by @iter matches a given @key, and should be displayed as a possible completion for @key. Note that @key is normalized and case-folded (see g_utf8_normalize() and g_utf8_casefold()). If this is not appropriate, match functions have access to the unmodified key via `gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry ()))`.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter should be displayed as a possible completion for @key</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="completion" transfer-ownership="none"> <doc xml:space="preserve">the #GtkEntryCompletion</doc> <type name="EntryCompletion" c:type="GtkEntryCompletion*"/> </parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">the string to match, normalized and case-folded</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter indicating the row to match</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> <doc xml:space="preserve">user data given to gtk_entry_completion_set_match_func()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="EntryCompletionPrivate" c:type="GtkEntryCompletionPrivate" disguised="1"> </record> <class name="EntryIconAccessible" c:symbol-prefix="entry_icon_accessible" parent="Atk.Object" glib:type-name="GtkEntryIconAccessible" glib:get-type="gtk_entry_icon_accessible_get_type"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> </class> <enumeration name="EntryIconPosition" version="2.16" glib:type-name="GtkEntryIconPosition" glib:get-type="gtk_entry_icon_position_get_type" c:type="GtkEntryIconPosition"> <doc xml:space="preserve">Specifies the side of the entry at which an icon is placed.</doc> <member name="primary" value="0" c:identifier="GTK_ENTRY_ICON_PRIMARY" glib:nick="primary"> <doc xml:space="preserve">At the beginning of the entry (depending on the text direction).</doc> </member> <member name="secondary" value="1" c:identifier="GTK_ENTRY_ICON_SECONDARY" glib:nick="secondary"> <doc xml:space="preserve">At the end of the entry (depending on the text direction).</doc> </member> </enumeration> <record name="EntryPrivate" c:type="GtkEntryPrivate" disguised="1"> </record> <class name="EventBox" c:symbol-prefix="event_box" c:type="GtkEventBox" parent="Bin" glib:type-name="GtkEventBox" glib:get-type="gtk_event_box_get_type" glib:type-struct="EventBoxClass"> <doc xml:space="preserve">The #GtkEventBox widget is a subclass of #GtkBin which also has its own window. It is useful since it allows you to catch events for widgets which do not have their own window.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_event_box_new"> <doc xml:space="preserve">Creates a new #GtkEventBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkEventBox</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_above_child" c:identifier="gtk_event_box_get_above_child" version="2.4"> <doc xml:space="preserve">Returns whether the event box window is above or below the windows of its child. See gtk_event_box_set_above_child() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event box window is above the window of its child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="event_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventBox</doc> <type name="EventBox" c:type="GtkEventBox*"/> </instance-parameter> </parameters> </method> <method name="get_visible_window" c:identifier="gtk_event_box_get_visible_window" version="2.4"> <doc xml:space="preserve">Returns whether the event box has a visible window. See gtk_event_box_set_visible_window() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event box window is visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="event_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventBox</doc> <type name="EventBox" c:type="GtkEventBox*"/> </instance-parameter> </parameters> </method> <method name="set_above_child" c:identifier="gtk_event_box_set_above_child" version="2.4"> <doc xml:space="preserve">Set whether the event box window is positioned above the windows of its child, as opposed to below it. If the window is above, all events inside the event box will go to the event box. If the window is below, events in windows of child widgets will first got to that widget, and then to its parents. The default is to keep the window below the child.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="event_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventBox</doc> <type name="EventBox" c:type="GtkEventBox*"/> </instance-parameter> <parameter name="above_child" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event box window is above its child</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visible_window" c:identifier="gtk_event_box_set_visible_window" version="2.4"> <doc xml:space="preserve">Set whether the event box uses a visible or invisible child window. The default is to use visible windows. In an invisible window event box, the window that the event box creates is a %GDK_INPUT_ONLY window, which means that it is invisible and only serves to receive events. A visible window event box creates a visible (%GDK_INPUT_OUTPUT) window that acts as the parent window for all the widgets contained in the event box. You should generally make your event box invisible if you just want to trap events. Creating a visible window may cause artifacts that are visible to the user, especially if the user is using a theme with gradients or pixmaps. The main reason to create a non input-only event box is if you want to set the background to a different color or draw on it. There is one unexpected issue for an invisible event box that has its window below the child. (See gtk_event_box_set_above_child().) Since the input-only window is not an ancestor window of any windows that descendent widgets of the event box create, events on these windows arenât propagated up by the windowing system, but only by GTK+. The practical effect of this is if an event isnât in the event mask for the descendant window (see gtk_widget_add_events()), it wonât be received by the event box. This problem doesnât occur for visible event boxes, because in that case, the event box window is actually the ancestor of the descendant windows, not just at the same place on the screen.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="event_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventBox</doc> <type name="EventBox" c:type="GtkEventBox*"/> </instance-parameter> <parameter name="visible_window" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the event box have a visible window</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="above-child" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible-window" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="bin"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="EventBoxPrivate" c:type="GtkEventBoxPrivate*"/> </field> </class> <record name="EventBoxClass" c:type="GtkEventBoxClass" glib:is-gtype-struct-for="EventBox"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="EventBoxPrivate" c:type="GtkEventBoxPrivate" disguised="1"> </record> <class name="EventController" c:symbol-prefix="event_controller" c:type="GtkEventController" parent="GObject.Object" abstract="1" glib:type-name="GtkEventController" glib:get-type="gtk_event_controller_get_type" glib:type-struct="EventControllerClass"> <doc xml:space="preserve">#GtkEventController is a base, low-level implementation for event controllers. Those react to a series of #GdkEvents, and possibly trigger actions as a consequence of those.</doc> <method name="get_propagation_phase" c:identifier="gtk_event_controller_get_propagation_phase" version="3.14"> <doc xml:space="preserve">Gets the propagation phase at which @controller handles events.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the propagation phase</doc> <type name="PropagationPhase" c:type="GtkPropagationPhase"/> </return-value> <parameters> <instance-parameter name="controller" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventController</doc> <type name="EventController" c:type="GtkEventController*"/> </instance-parameter> </parameters> </method> <method name="get_widget" c:identifier="gtk_event_controller_get_widget" version="3.14"> <doc xml:space="preserve">Returns the #GtkWidget this controller relates to.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="controller" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventController</doc> <type name="EventController" c:type="GtkEventController*"/> </instance-parameter> </parameters> </method> <method name="handle_event" c:identifier="gtk_event_controller_handle_event" version="3.14"> <doc xml:space="preserve">Feeds an events into @controller, so it can be interpreted and the controller actions triggered.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the event was potentially useful to trigger the controller action</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="controller" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventController</doc> <type name="EventController" c:type="GtkEventController*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="const GdkEvent*"/> </parameter> </parameters> </method> <method name="reset" c:identifier="gtk_event_controller_reset" version="3.14"> <doc xml:space="preserve">Resets the @controller to a clean state. Every interaction the controller did through #GtkEventController::handle-event will be dropped at this point.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="controller" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventController</doc> <type name="EventController" c:type="GtkEventController*"/> </instance-parameter> </parameters> </method> <method name="set_propagation_phase" c:identifier="gtk_event_controller_set_propagation_phase" version="3.14"> <doc xml:space="preserve">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. In that phase, the events can be managed by calling gtk_event_controller_handle_event().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="controller" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEventController</doc> <type name="EventController" c:type="GtkEventController*"/> </instance-parameter> <parameter name="phase" transfer-ownership="none"> <doc xml:space="preserve">a propagation phase</doc> <type name="PropagationPhase" c:type="GtkPropagationPhase"/> </parameter> </parameters> </method> <property name="propagation-phase" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The propagation phase at which this controller will handle events.</doc> <type name="PropagationPhase"/> </property> <property name="widget" version="3.14" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The widget receiving the #GdkEvents that the controller will handle.</doc> <type name="Widget"/> </property> </class> <record name="EventControllerClass" c:type="GtkEventControllerClass" disguised="1" glib:is-gtype-struct-for="EventController"> </record> <enumeration name="EventSequenceState" version="3.14" glib:type-name="GtkEventSequenceState" glib:get-type="gtk_event_sequence_state_get_type" c:type="GtkEventSequenceState"> <doc xml:space="preserve">Describes the state of a #GdkEventSequence in a #GtkGesture.</doc> <member name="none" value="0" c:identifier="GTK_EVENT_SEQUENCE_NONE" glib:nick="none"> <doc xml:space="preserve">The sequence is handled, but not grabbed.</doc> </member> <member name="claimed" value="1" c:identifier="GTK_EVENT_SEQUENCE_CLAIMED" glib:nick="claimed"> <doc xml:space="preserve">The sequence is handled and grabbed.</doc> </member> <member name="denied" value="2" c:identifier="GTK_EVENT_SEQUENCE_DENIED" glib:nick="denied"> <doc xml:space="preserve">The sequence is denied.</doc> </member> </enumeration> <class name="Expander" c:symbol-prefix="expander" c:type="GtkExpander" parent="Bin" glib:type-name="GtkExpander" glib:get-type="gtk_expander_get_type" glib:type-struct="ExpanderClass"> <doc xml:space="preserve">A #GtkExpander allows the user to hide or show its child by clicking on an expander triangle similar to the triangles used in a #GtkTreeView. Normally you use an expander as you would use any other descendant of #GtkBin; you create the child widget and use gtk_container_add() to add it to the expander. When the expander is toggled, it will take care of showing and hiding the child automatically. # Special Usage There are situations in which you may prefer to show and hide the expanded widget yourself, such as when you want to actually create the widget at expansion time. In this case, create a #GtkExpander but do not add a child to it. The expander widget has an #GtkExpander:expanded property which can be used to monitor its expansion state. You should watch this property with a signal connection as follows: |[<!-- language="C" --> static void expander_callback (GObject *object, GParamSpec *param_spec, gpointer user_data) { GtkExpander *expander; expander = GTK_EXPANDER (object); if (gtk_expander_get_expanded (expander)) { // Show or create widgets } else { // Hide or destroy widgets } } static void create_expander (void) { GtkWidget *expander = gtk_expander_new_with_mnemonic ("_More Options"); g_signal_connect (expander, "notify::expanded", G_CALLBACK (expander_callback), NULL); // ... } ]| # GtkExpander as GtkBuildable The GtkExpander implementation of the GtkBuildable interface supports placing a child in the label position by specifying âlabelâ as the âtypeâ attribute of a <child> element. A normal content child can be specified without specifying a <child> type attribute. An example of a UI definition fragment with GtkExpander: |[ <object class="GtkExpander"> <child type="label"> <object class="GtkLabel" id="expander-label"/> </child> <child> <object class="GtkEntry" id="expander-content"/> </child> </object> ]| # CSS nodes |[<!-- language="plain" --> expander âââ title â âââ arrow â â°ââ <label widget> â°ââ <child> ]| GtkExpander has three CSS nodes, the main node with the name expander, a subnode with name title and node below it with name arrow. The arrow of an expander that is showing its child gets the :checked pseudoclass added to it.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_expander_new" version="2.4"> <doc xml:space="preserve">Creates a new expander using @label as the text of the label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkExpander widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the text of the label</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_expander_new_with_mnemonic" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkExpander widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the text of the label with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_expanded" c:identifier="gtk_expander_get_expanded" version="2.4"> <doc xml:space="preserve">Queries a #GtkExpander and returns its current state. Returns %TRUE if the child widget is revealed. See gtk_expander_set_expanded().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current state of the expander</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </method> <method name="get_label" c:identifier="gtk_expander_get_label" version="2.4"> <doc xml:space="preserve">Fetches the text from a label widget including any embedded underlines indicating mnemonics and Pango markup, as set by 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. Note that this function behaved differently in versions prior to 2.14 and used to return the label text stripped of embedded underlines indicating mnemonics and Pango markup. This problem can be avoided by fetching the label text directly from the label widget.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The text of the label widget. This string is owned by the widget and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </method> <method name="get_label_fill" c:identifier="gtk_expander_get_label_fill" version="2.22"> <doc xml:space="preserve">Returns whether the label widget will fill all available horizontal space allocated to @expander.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the label widget will fill all available horizontal space</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </method> <method name="get_label_widget" c:identifier="gtk_expander_get_label_widget" version="2.4"> <doc xml:space="preserve">Retrieves the label widget for the frame. See gtk_expander_set_label_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the label widget, or %NULL if there is none</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </method> <method name="get_resize_toplevel" c:identifier="gtk_expander_get_resize_toplevel" version="3.2"> <doc xml:space="preserve">Returns whether the expander will resize the toplevel widget containing the expander upon resizing and collpasing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the âresize toplevelâ setting.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </method> <method name="get_spacing" c:identifier="gtk_expander_get_spacing" version="2.4" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Gets the value set by gtk_expander_set_spacing().</doc> <doc-deprecated xml:space="preserve">Use margins on the child instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">spacing between the expander and child</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </method> <method name="get_use_markup" c:identifier="gtk_expander_get_use_markup" version="2.4"> <doc xml:space="preserve">Returns whether the labelâs text is interpreted as marked up with the [Pango text markup language][PangoMarkupFormat]. See gtk_expander_set_use_markup().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the labelâs text will be parsed for markup</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </method> <method name="get_use_underline" c:identifier="gtk_expander_get_use_underline" version="2.4"> <doc xml:space="preserve">Returns whether an embedded underline in the expander label indicates a mnemonic. See gtk_expander_set_use_underline().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an embedded underline in the expander label indicates the mnemonic accelerator keys</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> </parameters> </method> <method name="set_expanded" c:identifier="gtk_expander_set_expanded" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> <parameter name="expanded" transfer-ownership="none"> <doc xml:space="preserve">whether the child widget is revealed</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_expander_set_label" version="2.4"> <doc xml:space="preserve">Sets the text of the label of the expander to @label. This will also clear any previously set labels.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_label_fill" c:identifier="gtk_expander_set_label_fill" version="2.22"> <doc xml:space="preserve">Sets whether the label widget should fill all available horizontal space allocated to @expander.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> <parameter name="label_fill" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the label should should fill all available horizontal space</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_label_widget" c:identifier="gtk_expander_set_label_widget" version="2.4"> <doc xml:space="preserve">Set the label widget for the expander. This is the widget that will appear embedded alongside the expander arrow.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> <parameter name="label_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the new label widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_resize_toplevel" c:identifier="gtk_expander_set_resize_toplevel" version="3.2"> <doc xml:space="preserve">Sets whether the expander will resize the toplevel widget containing the expander upon resizing and collpasing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> <parameter name="resize_toplevel" transfer-ownership="none"> <doc xml:space="preserve">whether to resize the toplevel</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_spacing" c:identifier="gtk_expander_set_spacing" version="2.4" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Sets the spacing field of @expander, which is the number of pixels to place between expander and the child.</doc> <doc-deprecated xml:space="preserve">Use margins on the child instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">distance between the expander and child in pixels</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_use_markup" c:identifier="gtk_expander_set_use_markup" version="2.4"> <doc xml:space="preserve">Sets whether the text of the label contains markup in [Pangoâs text markup language][PangoMarkupFormat]. See gtk_label_set_markup().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> <parameter name="use_markup" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the labelâs text should be parsed for markup</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_use_underline" c:identifier="gtk_expander_set_use_underline" version="2.4"> <doc xml:space="preserve">If true, an underline in the text of the expander label indicates the next character should be used for the mnemonic accelerator key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="expander" transfer-ownership="none"> <doc xml:space="preserve">a #GtkExpander</doc> <type name="Expander" c:type="GtkExpander*"/> </instance-parameter> <parameter name="use_underline" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if underlines in the text indicate mnemonics</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="expanded" writable="1" construct="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="label" writable="1" construct="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="label-fill" writable="1" construct="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="label-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="resize-toplevel" version="3.2" writable="1" transfer-ownership="none"> <doc xml:space="preserve">When this property is %TRUE, the expander will resize the toplevel widget containing the expander upon expanding and collapsing.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="spacing" deprecated="1" deprecated-version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Space to put between the label and the child when the expander is expanded.</doc> <doc-deprecated xml:space="preserve">This property is deprecated and ignored. Use margins on the child instead.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="use-markup" writable="1" construct="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="use-underline" writable="1" construct="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="bin"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv"> <type name="ExpanderPrivate" c:type="GtkExpanderPrivate*"/> </field> <glib:signal name="activate" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="ExpanderAccessible" c:symbol-prefix="expander_accessible" c:type="GtkExpanderAccessible" parent="ContainerAccessible" glib:type-name="GtkExpanderAccessible" glib:get-type="gtk_expander_accessible_get_type" glib:type-struct="ExpanderAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="ExpanderAccessiblePrivate" c:type="GtkExpanderAccessiblePrivate*"/> </field> </class> <record name="ExpanderAccessibleClass" c:type="GtkExpanderAccessibleClass" glib:is-gtype-struct-for="ExpanderAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="ExpanderAccessiblePrivate" c:type="GtkExpanderAccessiblePrivate" disguised="1"> </record> <record name="ExpanderClass" c:type="GtkExpanderClass" glib:is-gtype-struct-for="Expander"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="expander" transfer-ownership="none"> <type name="Expander" c:type="GtkExpander*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ExpanderPrivate" c:type="GtkExpanderPrivate" disguised="1"> </record> <enumeration name="ExpanderStyle" glib:type-name="GtkExpanderStyle" glib:get-type="gtk_expander_style_get_type" c:type="GtkExpanderStyle"> <doc xml:space="preserve">Used to specify the style of the expanders drawn by a #GtkTreeView.</doc> <member name="collapsed" value="0" c:identifier="GTK_EXPANDER_COLLAPSED" glib:nick="collapsed"> <doc xml:space="preserve">The style used for a collapsed subtree.</doc> </member> <member name="semi_collapsed" value="1" c:identifier="GTK_EXPANDER_SEMI_COLLAPSED" glib:nick="semi-collapsed"> <doc xml:space="preserve">Intermediate style used during animation.</doc> </member> <member name="semi_expanded" value="2" c:identifier="GTK_EXPANDER_SEMI_EXPANDED" glib:nick="semi-expanded"> <doc xml:space="preserve">Intermediate style used during animation.</doc> </member> <member name="expanded" value="3" c:identifier="GTK_EXPANDER_EXPANDED" glib:nick="expanded"> <doc xml:space="preserve">The style used for an expanded subtree.</doc> </member> </enumeration> <interface name="FileChooser" c:symbol-prefix="file_chooser" c:type="GtkFileChooser" glib:type-name="GtkFileChooser" glib:get-type="gtk_file_chooser_get_type"> <doc xml:space="preserve">#GtkFileChooser is an interface that can be implemented by file selection widgets. In GTK+, the main objects that implement this interface are #GtkFileChooserWidget, #GtkFileChooserDialog, and #GtkFileChooserButton. You do not need to write an object that implements the #GtkFileChooser interface unless you are trying to adapt an existing file selector to expose a standard programming interface. #GtkFileChooser allows for shortcuts to various places in the filesystem. In the default implementation these are displayed in the left pane. It may be a bit confusing at first that these shortcuts come from various sources and in various flavours, so lets explain the terminology here: - Bookmarks: are created by the user, by dragging folders from the right pane to the left pane, or by using the âAddâ. Bookmarks can be renamed and deleted by the user. - Shortcuts: can be provided by the application. For example, a Paint program may want to add a shortcut for a Clipart folder. Shortcuts cannot be modified by the user. - Volumes: are provided by the underlying filesystem abstraction. They are the ârootsâ of the filesystem. # File Names and Encodings When the user is finished selecting files in a #GtkFileChooser, your program can get the selected names either as filenames or as URIs. For URIs, the normal escaping rules are applied if the URI contains non-ASCII characters. However, filenames are always returned in the character set specified by the `G_FILENAME_ENCODING` environment variable. Please see the GLib documentation for more details about this variable. This means that while you can pass the result of gtk_file_chooser_get_filename() to open() or fopen(), you may not be able to directly set it as the text of a #GtkLabel widget unless you convert it first to UTF-8, which all GTK+ widgets expect. You should use g_filename_to_utf8() to convert filenames into strings that can be passed to GTK+ widgets. # Adding a Preview Widget You can add a custom preview widget to a file chooser and then get notification about when the preview needs to be updated. To install a preview widget, use gtk_file_chooser_set_preview_widget(). Then, connect to the #GtkFileChooser::update-preview signal to get notified when you need to update the contents of the preview. Your callback should use gtk_file_chooser_get_preview_filename() to see what needs previewing. Once you have generated the preview for the corresponding file, you must call gtk_file_chooser_set_preview_widget_active() with a boolean flag that indicates whether your callback could successfully generate a preview. ## Example: Using a Preview Widget ## {#gtkfilechooser-preview} |[<!-- language="C" --> { GtkImage *preview; ... preview = gtk_image_new (); gtk_file_chooser_set_preview_widget (my_file_chooser, preview); g_signal_connect (my_file_chooser, "update-preview", G_CALLBACK (update_preview_cb), preview); } static void update_preview_cb (GtkFileChooser *file_chooser, gpointer data) { GtkWidget *preview; char *filename; GdkPixbuf *pixbuf; gboolean have_preview; preview = GTK_WIDGET (data); filename = gtk_file_chooser_get_preview_filename (file_chooser); pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, NULL); have_preview = (pixbuf != NULL); g_free (filename); gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf); if (pixbuf) g_object_unref (pixbuf); gtk_file_chooser_set_preview_widget_active (file_chooser, have_preview); } ]| # Adding Extra Widgets You can add extra widgets to a file chooser to provide options that are not present in the default design. For example, you can add a toggle button to give the user the option to open a file in read-only mode. You can use gtk_file_chooser_set_extra_widget() to insert additional widgets in a file chooser. An example for adding extra widgets: |[<!-- language="C" --> GtkWidget *toggle; ... toggle = gtk_check_button_new_with_label ("Open file read-only"); gtk_widget_show (toggle); gtk_file_chooser_set_extra_widget (my_file_chooser, toggle); } ]| If you want to set more than one extra widget in the file chooser, you can a container such as a #GtkBox or a #GtkGrid and include your widgets in it. Then, set the container as the whole extra widget.</doc> <method name="add_choice" c:identifier="gtk_file_chooser_add_choice" version="3.22"> <doc xml:space="preserve">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 gtk_file_chooser_set_choice() before the dialog is shown, and you can obtain the user-selected value in the ::response signal handler using gtk_file_chooser_get_choice(). Compare gtk_file_chooser_set_extra_widget().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="id" transfer-ownership="none"> <doc xml:space="preserve">id for the added choice</doc> <type name="utf8" c:type="const char*"/> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">user-visible label for the added choice</doc> <type name="utf8" c:type="const char*"/> </parameter> <parameter name="options" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">ids for the options of the choice, or %NULL for a boolean choice</doc> <array c:type="char**"> <type name="utf8" c:type="char*"/> </array> </parameter> <parameter name="option_labels" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user-visible labels for the options, must be the same length as @options</doc> <array c:type="char**"> <type name="utf8" c:type="char*"/> </array> </parameter> </parameters> </method> <method name="add_filter" c:identifier="gtk_file_chooser_add_filter" version="2.4"> <doc xml:space="preserve">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, so you have to ref and sink it if you want to keep a reference.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="full"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </parameter> </parameters> </method> <method name="add_shortcut_folder" c:identifier="gtk_file_chooser_add_shortcut_folder" version="2.4" throws="1"> <doc xml:space="preserve">Adds a folder to be displayed with the shortcut folders in a file chooser. Note that shortcut folders do not get saved, as they are provided by the application. For example, you can use this to add a â/usr/share/mydrawprogram/Clipartâ folder to the volume list.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the folder could be added successfully, %FALSE otherwise. In the latter case, the @error will be set as appropriate.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="folder" transfer-ownership="none"> <doc xml:space="preserve">filename of the folder to add</doc> <type name="filename" c:type="const char*"/> </parameter> </parameters> </method> <method name="add_shortcut_folder_uri" c:identifier="gtk_file_chooser_add_shortcut_folder_uri" version="2.4" throws="1"> <doc xml:space="preserve">Adds a folder URI to be displayed with the shortcut folders in a file chooser. Note that shortcut folders do not get saved, as they are provided by the application. For example, you can use this to add a âfile:///usr/share/mydrawprogram/Clipartâ folder to the volume list.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the folder could be added successfully, %FALSE otherwise. In the latter case, the @error will be set as appropriate.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">URI of the folder to add</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="get_action" c:identifier="gtk_file_chooser_get_action" version="2.4"> <doc xml:space="preserve">Gets the type of operation that the file chooser is performing; see gtk_file_chooser_set_action().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action that the file selector is performing</doc> <type name="FileChooserAction" c:type="GtkFileChooserAction"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_choice" c:identifier="gtk_file_chooser_get_choice" version="3.22"> <doc xml:space="preserve">Gets the currently selected option in the 'choice' with the given ID.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the ID of the currenly selected option</doc> <type name="utf8" c:type="const char*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="id" transfer-ownership="none"> <doc xml:space="preserve">the ID of the choice to get</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="get_create_folders" c:identifier="gtk_file_chooser_get_create_folders" version="2.18"> <doc xml:space="preserve">Gets whether file choser will offer to create new folders. See gtk_file_chooser_set_create_folders().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the Create Folder button should be displayed.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_current_folder" c:identifier="gtk_file_chooser_get_current_folder" version="2.4"> <doc xml:space="preserve">Gets the current folder of @chooser as a local filename. See gtk_file_chooser_set_current_folder(). Note that this is the folder that the file chooser is currently displaying (e.g. "/home/username/Documents"), which is not the same as the currently-selected folder if the chooser is in %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER mode (e.g. "/home/username/Documents/selected-folder/". To get the currently-selected folder in that mode, use gtk_file_chooser_get_uri() as the usual way to get the selection.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the full path of the current folder, or %NULL if the current path cannot be represented as a local filename. Free with g_free(). This function will also return %NULL if the file chooser was unable to load the last folder that was requested from it; for example, as would be for calling gtk_file_chooser_set_current_folder() on a nonexistent folder.</doc> <type name="filename" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_current_folder_file" c:identifier="gtk_file_chooser_get_current_folder_file" version="2.14"> <doc xml:space="preserve">Gets the current folder of @chooser as #GFile. See gtk_file_chooser_get_current_folder_uri().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the #GFile for the current folder.</doc> <type name="Gio.File" c:type="GFile*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_current_folder_uri" c:identifier="gtk_file_chooser_get_current_folder_uri" version="2.4"> <doc xml:space="preserve">Gets the current folder of @chooser as an URI. See gtk_file_chooser_set_current_folder_uri(). Note that this is the folder that the file chooser is currently displaying (e.g. "file:///home/username/Documents"), which is not the same as the currently-selected folder if the chooser is in %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER mode (e.g. "file:///home/username/Documents/selected-folder/". To get the currently-selected folder in that mode, use gtk_file_chooser_get_uri() as the usual way to get the selection.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the URI for the current folder. Free with g_free(). This function will also return %NULL if the file chooser was unable to load the last folder that was requested from it; for example, as would be for calling gtk_file_chooser_set_current_folder_uri() on a nonexistent folder.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_current_name" c:identifier="gtk_file_chooser_get_current_name" version="3.10"> <doc xml:space="preserve">Gets the current name in the file selector, as entered by the user in the text entry for âNameâ. This is meant to be used in save dialogs, to get the currently typed filename when the file itself does not exist yet. For example, an application that adds a custom extra widget to the file chooser for âfile formatâ may want to change the extension of the typed filename based on the chosen format, say, from â.jpgâ to â.pngâ.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">The raw text from the file chooserâs âNameâ entry. Free this 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.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_do_overwrite_confirmation" c:identifier="gtk_file_chooser_get_do_overwrite_confirmation" version="2.8"> <doc xml:space="preserve">Queries whether a file chooser is set to confirm for overwriting when the user types a file name that already exists.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the file chooser will present a confirmation dialog; %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_extra_widget" c:identifier="gtk_file_chooser_get_extra_widget" version="2.4"> <doc xml:space="preserve">Gets the current extra widget; see gtk_file_chooser_set_extra_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the current extra widget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_file" c:identifier="gtk_file_chooser_get_file" version="2.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a selected #GFile. You own the returned file; use g_object_unref() to release it.</doc> <type name="Gio.File" c:type="GFile*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_filename" c:identifier="gtk_file_chooser_get_filename" version="2.4"> <doc xml:space="preserve">Gets the filename for the currently selected file in the file selector. The filename is returned as an absolute path. If multiple files are selected, one of the filenames will be returned at random. If the file chooser is in folder mode, this function returns the selected folder.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">The currently selected filename, or %NULL if no file is selected, or the selected file can't be represented with a local filename. Free with g_free().</doc> <type name="filename" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_filenames" c:identifier="gtk_file_chooser_get_filenames" version="2.4"> <doc xml:space="preserve">Lists all the selected files and subfolders in the current folder of @chooser. The returned names are full absolute paths. If files in the current folder cannot be represented as local filenames they will be ignored. (See gtk_file_chooser_get_uris())</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GSList containing the filenames of all selected files and subfolders in the current folder. Free the returned list with g_slist_free(), and the filenames with g_free().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="filename"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_files" c:identifier="gtk_file_chooser_get_files" version="2.14"> <doc xml:space="preserve">Lists all the selected files and subfolders in the current folder of @chooser as #GFile. An internal function, see gtk_file_chooser_get_uris().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GSList containing a #GFile for each selected file and subfolder in the current folder. Free the returned list with g_slist_free(), and the files with g_object_unref().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="Gio.File"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_filter" c:identifier="gtk_file_chooser_get_filter" version="2.4"> <doc xml:space="preserve">Gets the current filter; see gtk_file_chooser_set_filter().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the current filter, or %NULL</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_local_only" c:identifier="gtk_file_chooser_get_local_only" version="2.4"> <doc xml:space="preserve">Gets whether only local files can be selected in the file selector. See gtk_file_chooser_set_local_only()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if only local files can be selected.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_preview_file" c:identifier="gtk_file_chooser_get_preview_file" version="2.14"> <doc xml:space="preserve">Gets the #GFile that should be previewed in a custom preview Internal function, see gtk_file_chooser_get_preview_uri().</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the #GFile for the file to preview, or %NULL if no file is selected. Free with g_object_unref().</doc> <type name="Gio.File" c:type="GFile*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_preview_filename" c:identifier="gtk_file_chooser_get_preview_filename" version="2.4"> <doc xml:space="preserve">Gets the filename that should be previewed in a custom preview widget. See gtk_file_chooser_set_preview_widget().</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the filename to preview, or %NULL if no file is selected, or if the selected file cannot be represented as a local filename. Free with g_free()</doc> <type name="filename" c:type="char*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_preview_uri" c:identifier="gtk_file_chooser_get_preview_uri" version="2.4"> <doc xml:space="preserve">Gets the URI that should be previewed in a custom preview widget. See gtk_file_chooser_set_preview_widget().</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the URI for the file to preview, or %NULL if no file is selected. Free with g_free().</doc> <type name="utf8" c:type="char*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_preview_widget" c:identifier="gtk_file_chooser_get_preview_widget" version="2.4"> <doc xml:space="preserve">Gets the current preview widget; see gtk_file_chooser_set_preview_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the current preview widget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_preview_widget_active" c:identifier="gtk_file_chooser_get_preview_widget_active" version="2.4"> <doc xml:space="preserve">Gets whether the preview widget set by gtk_file_chooser_set_preview_widget() should be shown for the current filename. See gtk_file_chooser_set_preview_widget_active().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the preview widget is active for the current filename.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_select_multiple" c:identifier="gtk_file_chooser_get_select_multiple" version="2.4"> <doc xml:space="preserve">Gets whether multiple files can be selected in the file selector. See gtk_file_chooser_set_select_multiple().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if multiple files can be selected.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_show_hidden" c:identifier="gtk_file_chooser_get_show_hidden" version="2.6"> <doc xml:space="preserve">Gets whether hidden files and folders are displayed in the file selector. See gtk_file_chooser_set_show_hidden().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if hidden files and folders are displayed.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_uri" c:identifier="gtk_file_chooser_get_uri" version="2.4"> <doc xml:space="preserve">Gets the URI for the currently selected file in the file selector. If multiple files are selected, one of the filenames will be returned at random. If the file chooser is in folder mode, this function returns the selected folder.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">The currently selected URI, or %NULL if no file is selected. If gtk_file_chooser_set_local_only() is set to %TRUE (the default) a local URI will be returned for any FUSE locations. Free with g_free()</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_uris" c:identifier="gtk_file_chooser_get_uris" version="2.4"> <doc xml:space="preserve">Lists all the selected files and subfolders in the current folder of @chooser. The returned names are full absolute URIs.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GSList containing the URIs of all selected files and subfolders in the current folder. Free the returned list with g_slist_free(), and the filenames with g_free().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="utf8"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="get_use_preview_label" c:identifier="gtk_file_chooser_get_use_preview_label"> <doc xml:space="preserve">Gets whether a stock label should be drawn with the name of the previewed file. See gtk_file_chooser_set_use_preview_label().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the file chooser is set to display a label with the name of the previewed file, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="list_filters" c:identifier="gtk_file_chooser_list_filters" version="2.4"> <doc xml:space="preserve">Lists the current set of user-selectable filters; see gtk_file_chooser_add_filter(), gtk_file_chooser_remove_filter().</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a #GSList containing the current set of user selectable filters. The contents of the list are owned by GTK+, but you must free the list itself with g_slist_free() when you are done with it.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="FileFilter"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="list_shortcut_folder_uris" c:identifier="gtk_file_chooser_list_shortcut_folder_uris" version="2.4"> <doc xml:space="preserve">Queries the list of shortcut folders in the file chooser, as set by gtk_file_chooser_add_shortcut_folder_uri().</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A list of folder URIs, or %NULL if there are no shortcut folders. Free the returned list with g_slist_free(), and the URIs with g_free().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="utf8"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="list_shortcut_folders" c:identifier="gtk_file_chooser_list_shortcut_folders" version="2.4"> <doc xml:space="preserve">Queries the list of shortcut folders in the file chooser, as set by gtk_file_chooser_add_shortcut_folder().</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A list of folder filenames, or %NULL if there are no shortcut folders. Free the returned list with g_slist_free(), and the filenames with g_free().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="filename"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="remove_choice" c:identifier="gtk_file_chooser_remove_choice" version="3.22"> <doc xml:space="preserve">Removes a 'choice' that has been added with gtk_file_chooser_add_choice().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="id" transfer-ownership="none"> <doc xml:space="preserve">the ID of the choice to remove</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="remove_filter" c:identifier="gtk_file_chooser_remove_filter" version="2.4"> <doc xml:space="preserve">Removes @filter from the list of filters that the user can select between.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </parameter> </parameters> </method> <method name="remove_shortcut_folder" c:identifier="gtk_file_chooser_remove_shortcut_folder" version="2.4" throws="1"> <doc xml:space="preserve">Removes a folder from a file chooserâs list of shortcut folders.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the operation succeeds, %FALSE otherwise. In the latter case, the @error will be set as appropriate. See also: gtk_file_chooser_add_shortcut_folder()</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="folder" transfer-ownership="none"> <doc xml:space="preserve">filename of the folder to remove</doc> <type name="filename" c:type="const char*"/> </parameter> </parameters> </method> <method name="remove_shortcut_folder_uri" c:identifier="gtk_file_chooser_remove_shortcut_folder_uri" version="2.4" throws="1"> <doc xml:space="preserve">Removes a folder URI from a file chooserâs list of shortcut folders.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the operation succeeds, %FALSE otherwise. In the latter case, the @error will be set as appropriate. See also: gtk_file_chooser_add_shortcut_folder_uri()</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">URI of the folder to remove</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="select_all" c:identifier="gtk_file_chooser_select_all" version="2.4"> <doc xml:space="preserve">Selects all the files in the current folder of a file chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="select_file" c:identifier="gtk_file_chooser_select_file" version="2.14" throws="1"> <doc xml:space="preserve">Selects the file referred to by @file. An internal function. See _gtk_file_chooser_select_uri().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Not useful.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="file" transfer-ownership="none"> <doc xml:space="preserve">the file to select</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </method> <method name="select_filename" c:identifier="gtk_file_chooser_select_filename" version="2.4"> <doc xml:space="preserve">Selects a filename. 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 @filename.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Not useful. See also: gtk_file_chooser_set_filename()</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the filename to select</doc> <type name="filename" c:type="const char*"/> </parameter> </parameters> </method> <method name="select_uri" c:identifier="gtk_file_chooser_select_uri" version="2.4"> <doc xml:space="preserve">Selects the file to by @uri. If the URI doesnât refer to a file in the current folder of @chooser, then the current folder of @chooser will be changed to the folder containing @filename.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Not useful.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the URI to select</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="set_action" c:identifier="gtk_file_chooser_set_action" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action that the file selector is performing</doc> <type name="FileChooserAction" c:type="GtkFileChooserAction"/> </parameter> </parameters> </method> <method name="set_choice" c:identifier="gtk_file_chooser_set_choice" version="3.22"> <doc xml:space="preserve">Selects an option in a 'choice' that has been added with gtk_file_chooser_add_choice(). For a boolean choice, the possible options are "true" and "false".</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="id" transfer-ownership="none"> <doc xml:space="preserve">the ID of the choice to set</doc> <type name="utf8" c:type="const char*"/> </parameter> <parameter name="option" transfer-ownership="none"> <doc xml:space="preserve">the ID of the option to select</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="set_create_folders" c:identifier="gtk_file_chooser_set_create_folders" version="2.18"> <doc xml:space="preserve">Sets whether file choser will offer to create new folders. This is only relevant if the action is not set to be %GTK_FILE_CHOOSER_ACTION_OPEN.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="create_folders" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the Create Folder button should be displayed</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_current_folder" c:identifier="gtk_file_chooser_set_current_folder" version="2.4"> <doc xml:space="preserve">Sets the current folder for @chooser from a local filename. The user will be shown the full contents of the current folder, plus user interface elements for navigating to other folders. In general, you should not use this function. See the [section on setting up a file chooser dialog][gtkfilechooserdialog-setting-up] for the rationale behind this.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Not useful.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the full path of the new current folder</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_current_folder_file" c:identifier="gtk_file_chooser_set_current_folder_file" version="2.14" throws="1"> <doc xml:space="preserve">Sets the current folder for @chooser from a #GFile. Internal function, see gtk_file_chooser_set_current_folder_uri().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the folder could be changed successfully, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="file" transfer-ownership="none"> <doc xml:space="preserve">the #GFile for the new folder</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </method> <method name="set_current_folder_uri" c:identifier="gtk_file_chooser_set_current_folder_uri" version="2.4"> <doc xml:space="preserve">Sets the current folder for @chooser from an URI. The user will be shown the full contents of the current folder, plus user interface elements for navigating to other folders. In general, you should not use this function. See the [section on setting up a file chooser dialog][gtkfilechooserdialog-setting-up] for the rationale behind this.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the folder could be changed successfully, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the URI for the new current folder</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_current_name" c:identifier="gtk_file_chooser_set_current_name" version="2.4"> <doc xml:space="preserve">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 gtk_file_chooser_set_filename() or gtk_file_chooser_set_uri() instead. Please see the documentation for those functions for an example of using gtk_file_chooser_set_current_name() as well.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the filename to use, as a UTF-8 string</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_do_overwrite_confirmation" c:identifier="gtk_file_chooser_set_do_overwrite_confirmation" version="2.8"> <doc xml:space="preserve">Sets whether a file chooser in %GTK_FILE_CHOOSER_ACTION_SAVE mode will present a confirmation dialog if the user types a file name that already exists. This is %FALSE by default. If set to %TRUE, the @chooser will emit the #GtkFileChooser::confirm-overwrite signal when appropriate. If all you need is the stock confirmation dialog, set this property to %TRUE. You can override the way confirmation is done by actually handling the #GtkFileChooser::confirm-overwrite signal; please refer to its documentation for the details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="do_overwrite_confirmation" transfer-ownership="none"> <doc xml:space="preserve">whether to confirm overwriting in save mode</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_extra_widget" c:identifier="gtk_file_chooser_set_extra_widget" version="2.4"> <doc xml:space="preserve">Sets an application-supplied widget to provide extra options to the user.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="extra_widget" transfer-ownership="none"> <doc xml:space="preserve">widget for extra options</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_file" c:identifier="gtk_file_chooser_set_file" version="2.14" throws="1"> <doc xml:space="preserve">Sets @file as the current filename for the file chooser, by 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 @filename. This is equivalent to a sequence of gtk_file_chooser_unselect_all() followed by gtk_file_chooser_select_filename(). 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: |[<!-- language="C" --> if (document_is_new) { // the user just created a new document gtk_file_chooser_set_current_folder_file (chooser, default_file_for_saving); gtk_file_chooser_set_current_name (chooser, "Untitled document"); } else { // the user edited an existing document gtk_file_chooser_set_file (chooser, existing_file); } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Not useful.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="file" transfer-ownership="none"> <doc xml:space="preserve">the #GFile to set as current</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </method> <method name="set_filename" c:identifier="gtk_file_chooser_set_filename" version="2.4"> <doc xml:space="preserve">Sets @filename as the current filename for the file chooser, by changing to the fileâs parent folder and actually selecting the file in list; all other files will be unselected. 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. Note that the file must exist, or nothing will be done except for the directory change. You should use this function only when implementing a save dialog for which 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... to save a copy or a modified version. 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: |[<!-- language="C" --> if (document_is_new) { // the user just created a new document gtk_file_chooser_set_current_name (chooser, "Untitled document"); } else { // the user edited an existing document gtk_file_chooser_set_filename (chooser, existing_filename); } ]| In the first case, the file chooser will present the user with useful suggestions as to where to save his new file. In the second case, the fileâs existing location is already known, so the file chooser will use it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Not useful.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the filename to set as current</doc> <type name="filename" c:type="const char*"/> </parameter> </parameters> </method> <method name="set_filter" c:identifier="gtk_file_chooser_set_filter" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </parameter> </parameters> </method> <method name="set_local_only" c:identifier="gtk_file_chooser_set_local_only" version="2.4"> <doc xml:space="preserve">Sets whether only local files can be selected in the file selector. If @local_only is %TRUE (the default), then the selected file or files are guaranteed to be accessible through the operating systems native file system and therefore the application only needs to worry about the filename functions in #GtkFileChooser, like gtk_file_chooser_get_filename(), rather than the URI functions like gtk_file_chooser_get_uri(), On some systems non-native files may still be available using the native filesystem via a userspace filesystem (FUSE).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="local_only" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if only local files can be selected</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_preview_widget" c:identifier="gtk_file_chooser_set_preview_widget" version="2.4"> <doc xml:space="preserve">Sets an application-supplied widget to use to display a custom preview of the currently selected file. To implement a preview, after setting the preview widget, you connect to the #GtkFileChooser::update-preview signal, and call gtk_file_chooser_get_preview_filename() or gtk_file_chooser_get_preview_uri() on each change. If you can display a preview of the new file, update your widget and set the preview active using gtk_file_chooser_set_preview_widget_active(). Otherwise, set the preview inactive. When there is no application-supplied preview widget, or the application-supplied preview widget is not active, the file chooser will display no preview at all.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="preview_widget" transfer-ownership="none"> <doc xml:space="preserve">widget for displaying preview.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_preview_widget_active" c:identifier="gtk_file_chooser_set_preview_widget_active" version="2.4"> <doc xml:space="preserve">Sets whether the preview widget set by gtk_file_chooser_set_preview_widget() should be shown for the current filename. When @active is set to false, the file chooser may display an internally generated preview of the current file or it may display no preview at all. See gtk_file_chooser_set_preview_widget() for more details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="active" transfer-ownership="none"> <doc xml:space="preserve">whether to display the user-specified preview widget</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_select_multiple" c:identifier="gtk_file_chooser_set_select_multiple" version="2.4"> <doc xml:space="preserve">Sets whether multiple files can be selected in the file selector. This is only relevant if the action is set to be %GTK_FILE_CHOOSER_ACTION_OPEN or %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="select_multiple" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if multiple files can be selected.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_hidden" c:identifier="gtk_file_chooser_set_show_hidden" version="2.6"> <doc xml:space="preserve">Sets whether hidden files and folders are displayed in the file selector.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="show_hidden" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if hidden files and folders should be displayed.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_uri" c:identifier="gtk_file_chooser_set_uri" version="2.4"> <doc xml:space="preserve">Sets the file referred to by @uri as the current file for the file chooser, by changing to the URIâs parent folder and actually selecting the URI in the list. If the @chooser is %GTK_FILE_CHOOSER_ACTION_SAVE mode, the URIâs base name will also appear in the dialogâs file name entry. Note that the URI must exist, or nothing will be done except for the directory change. You should use this function only when implementing a save dialog for which 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... to save a copy or a modified version. 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: |[<!-- language="C" --> if (document_is_new) { // the user just created a new document gtk_file_chooser_set_current_name (chooser, "Untitled document"); } else { // the user edited an existing document gtk_file_chooser_set_uri (chooser, existing_uri); } ]| In the first case, the file chooser will present the user with useful suggestions as to where to save his new file. In the second case, the fileâs existing location is already known, so the file chooser will use it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Not useful.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the URI to set as current</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="set_use_preview_label" c:identifier="gtk_file_chooser_set_use_preview_label" version="2.4"> <doc xml:space="preserve">Sets whether the file chooser should display a stock label with the name of the file that is being previewed; the default is %TRUE. Applications that want to draw the whole preview area themselves should set this to %FALSE and display the name themselves in their preview widget. See also: gtk_file_chooser_set_preview_widget()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="use_label" transfer-ownership="none"> <doc xml:space="preserve">whether to display a stock label with the name of the previewed file</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="unselect_all" c:identifier="gtk_file_chooser_unselect_all" version="2.4"> <doc xml:space="preserve">Unselects all the files in the current folder of a file chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> </parameters> </method> <method name="unselect_file" c:identifier="gtk_file_chooser_unselect_file" version="2.14"> <doc xml:space="preserve">Unselects the file referred to by @file. If the file is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="file" transfer-ownership="none"> <doc xml:space="preserve">a #GFile</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </method> <method name="unselect_filename" c:identifier="gtk_file_chooser_unselect_filename" version="2.4"> <doc xml:space="preserve">Unselects a currently selected filename. If the filename is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the filename to unselect</doc> <type name="filename" c:type="const char*"/> </parameter> </parameters> </method> <method name="unselect_uri" c:identifier="gtk_file_chooser_unselect_uri" version="2.4"> <doc xml:space="preserve">Unselects the file referred to by @uri. If the file is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooser</doc> <type name="FileChooser" c:type="GtkFileChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the URI to unselect</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <property name="action" writable="1" transfer-ownership="none"> <type name="FileChooserAction"/> </property> <property name="create-folders" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether a file chooser not in %GTK_FILE_CHOOSER_ACTION_OPEN mode will offer the user to create new folders.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="do-overwrite-confirmation" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether a file chooser in %GTK_FILE_CHOOSER_ACTION_SAVE mode will present an overwrite confirmation dialog if the user selects a file name that already exists.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="extra-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="filter" writable="1" transfer-ownership="none"> <type name="FileFilter"/> </property> <property name="local-only" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="preview-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="preview-widget-active" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="select-multiple" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-hidden" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="use-preview-label" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <glib:signal name="confirm-overwrite" when="last" version="2.8"> <doc xml:space="preserve">This signal gets emitted whenever it is appropriate to present a confirmation dialog when the user has selected a file name that already exists. The signal only gets emitted when the file chooser is in %GTK_FILE_CHOOSER_ACTION_SAVE mode. Most applications just need to turn on the #GtkFileChooser:do-overwrite-confirmation property (or call the gtk_file_chooser_set_do_overwrite_confirmation() function), and they will automatically get a stock confirmation dialog. Applications which need to customize this behavior should do that, and also connect to the #GtkFileChooser::confirm-overwrite signal. A signal handler for this signal must return a #GtkFileChooserConfirmation value, which indicates the action to take. If the handler determines that the user wants to select a different filename, it should return %GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN. If it determines that the user is satisfied with his choice of file name, it should return %GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME. On the other hand, if it determines that the stock confirmation dialog should be used, it should return %GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM. The following example illustrates this. ## Custom confirmation ## {#gtkfilechooser-confirmation} |[<!-- language="C" --> static GtkFileChooserConfirmation confirm_overwrite_callback (GtkFileChooser *chooser, gpointer data) { char *uri; uri = gtk_file_chooser_get_uri (chooser); if (is_uri_read_only (uri)) { if (user_wants_to_replace_read_only_file (uri)) return GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME; else return GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN; } else return GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM; // fall back to the default dialog } ... chooser = gtk_file_chooser_dialog_new (...); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); g_signal_connect (chooser, "confirm-overwrite", G_CALLBACK (confirm_overwrite_callback), NULL); if (gtk_dialog_run (chooser) == GTK_RESPONSE_ACCEPT) save_to_file (gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); gtk_widget_destroy (chooser); ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooserConfirmation value that indicates which action to take after emitting the signal.</doc> <type name="FileChooserConfirmation"/> </return-value> </glib:signal> <glib:signal name="current-folder-changed" when="last"> <doc xml:space="preserve">This signal is emitted when the current folder in a #GtkFileChooser changes. This can happen due to the user performing some action that changes folders, such as selecting a bookmark or visiting a folder on the file list. It can also happen as a result of calling a function to explicitly change the current folder in a file chooser. Normally you do not need to connect to this signal, unless you need to keep track of which folder a file chooser is showing. See also: gtk_file_chooser_set_current_folder(), gtk_file_chooser_get_current_folder(), gtk_file_chooser_set_current_folder_uri(), gtk_file_chooser_get_current_folder_uri().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="file-activated" when="last"> <doc xml:space="preserve">This signal is emitted when the user "activates" a file in the file chooser. This can happen by double-clicking on a file in the file list, or by pressing `Enter`. Normally you do not need to connect to this signal. It is used internally by #GtkFileChooserDialog to know when to activate the default button in the dialog. See also: gtk_file_chooser_get_filename(), gtk_file_chooser_get_filenames(), gtk_file_chooser_get_uri(), gtk_file_chooser_get_uris().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="selection-changed" when="last"> <doc xml:space="preserve">This signal is emitted when there is a change in the set of selected files in a #GtkFileChooser. This can happen when the user modifies the selection with the mouse or the keyboard, or when explicitly calling functions to change the selection. Normally you do not need to connect to this signal, as it is easier to wait for the file chooser to finish running, and then to get the list of selected files using the functions mentioned below. See also: gtk_file_chooser_select_filename(), gtk_file_chooser_unselect_filename(), gtk_file_chooser_get_filename(), gtk_file_chooser_get_filenames(), gtk_file_chooser_select_uri(), gtk_file_chooser_unselect_uri(), gtk_file_chooser_get_uri(), gtk_file_chooser_get_uris().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="update-preview" when="last"> <doc xml:space="preserve">This signal is emitted when the preview in a file chooser should be regenerated. For example, this can happen when the currently selected file changes. You should use this signal if you want your file chooser to have a preview widget. Once you have installed a preview widget with gtk_file_chooser_set_preview_widget(), you should update it when this signal is emitted. You can use the functions gtk_file_chooser_get_preview_filename() or gtk_file_chooser_get_preview_uri() to get the name of the file to preview. Your widget may not be able to preview all kinds of files; your callback must call gtk_file_chooser_set_preview_widget_active() to inform the file chooser about whether the preview was generated successfully or not. Please see the example code in [Using a Preview Widget][gtkfilechooser-preview]. See also: gtk_file_chooser_set_preview_widget(), gtk_file_chooser_set_preview_widget_active(), gtk_file_chooser_set_use_preview_label(), gtk_file_chooser_get_preview_filename(), gtk_file_chooser_get_preview_uri().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </interface> <enumeration name="FileChooserAction" glib:type-name="GtkFileChooserAction" glib:get-type="gtk_file_chooser_action_get_type" c:type="GtkFileChooserAction"> <doc xml:space="preserve">Describes whether a #GtkFileChooser is being used to open existing files or to save to a possibly new file.</doc> <member name="open" value="0" c:identifier="GTK_FILE_CHOOSER_ACTION_OPEN" glib:nick="open"> <doc xml:space="preserve">Indicates open mode. The file chooser will only let the user pick an existing file.</doc> </member> <member name="save" value="1" c:identifier="GTK_FILE_CHOOSER_ACTION_SAVE" glib:nick="save"> <doc xml:space="preserve">Indicates save mode. The file chooser will let the user pick an existing file, or type in a new filename.</doc> </member> <member name="select_folder" value="2" c:identifier="GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER" glib:nick="select-folder"> <doc xml:space="preserve">Indicates an Open mode for selecting folders. The file chooser will let the user pick an existing folder.</doc> </member> <member name="create_folder" value="3" c:identifier="GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER" glib:nick="create-folder"> <doc xml:space="preserve">Indicates a mode for creating a new folder. The file chooser will let the user name an existing or new folder.</doc> </member> </enumeration> <class name="FileChooserButton" c:symbol-prefix="file_chooser_button" c:type="GtkFileChooserButton" parent="Box" glib:type-name="GtkFileChooserButton" glib:get-type="gtk_file_chooser_button_get_type" glib:type-struct="FileChooserButtonClass"> <doc xml:space="preserve">The #GtkFileChooserButton is a widget that lets the user select a file. It implements the #GtkFileChooser interface. Visually, it is a file name with a button to bring up a #GtkFileChooserDialog. The user can then use that dialog to change the file associated with that button. This widget does not support setting the #GtkFileChooser:select-multiple property to %TRUE. ## Create a button to let the user select a file in /etc |[<!-- language="C" --> { GtkWidget *button; button = gtk_file_chooser_button_new (_("Select a file"), GTK_FILE_CHOOSER_ACTION_OPEN); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button), "/etc"); } ]| The #GtkFileChooserButton supports the #GtkFileChooserActions %GTK_FILE_CHOOSER_ACTION_OPEN and %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER. > The #GtkFileChooserButton will ellipsize the label, and will thus > request little horizontal space. To give the button more space, > you should call gtk_widget_get_preferred_size(), > gtk_file_chooser_button_set_width_chars(), or pack the button in > such a way that other interface elements give space to the > widget.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="FileChooser"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_file_chooser_button_new" version="2.6"> <doc xml:space="preserve">Creates a new file-selecting button widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new button widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">the title of the browse dialog.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the open mode for the widget.</doc> <type name="FileChooserAction" c:type="GtkFileChooserAction"/> </parameter> </parameters> </constructor> <constructor name="new_with_dialog" c:identifier="gtk_file_chooser_button_new_with_dialog" version="2.6"> <doc xml:space="preserve">Creates a #GtkFileChooserButton widget which uses @dialog as its file-picking window. Note that @dialog must be a #GtkDialog (or subclass) which implements the #GtkFileChooser interface and must not have %GTK_DIALOG_DESTROY_WITH_PARENT set. Also note that the dialog needs to have its confirmative button added with response %GTK_RESPONSE_ACCEPT or %GTK_RESPONSE_OK in order for the button to take over the file selected in the dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new button widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">the widget to use as dialog</doc> <type name="Dialog" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <virtual-method name="file_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fc" transfer-ownership="none"> <type name="FileChooserButton" c:type="GtkFileChooserButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_focus_on_click" c:identifier="gtk_file_chooser_button_get_focus_on_click" version="2.10" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Returns whether the button grabs focus when it is clicked with the mouse. See gtk_file_chooser_button_set_focus_on_click().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_focus_on_click() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the button grabs focus when it is clicked with the mouse.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooserButton</doc> <type name="FileChooserButton" c:type="GtkFileChooserButton*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_file_chooser_button_get_title" version="2.6"> <doc xml:space="preserve">Retrieves the title of the browse dialog used by @button. The returned value should not be modified or freed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a pointer to the browse dialogâs title.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">the button widget to examine.</doc> <type name="FileChooserButton" c:type="GtkFileChooserButton*"/> </instance-parameter> </parameters> </method> <method name="get_width_chars" c:identifier="gtk_file_chooser_button_get_width_chars" version="2.6"> <doc xml:space="preserve">Retrieves the width in characters of the @button widgetâs entry and/or label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">an integer width (in characters) that the button will use to size itself.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">the button widget to examine.</doc> <type name="FileChooserButton" c:type="GtkFileChooserButton*"/> </instance-parameter> </parameters> </method> <method name="set_focus_on_click" c:identifier="gtk_file_chooser_button_set_focus_on_click" version="2.10" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Sets whether the button will 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.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_focus_on_click() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileChooserButton</doc> <type name="FileChooserButton" c:type="GtkFileChooserButton*"/> </instance-parameter> <parameter name="focus_on_click" transfer-ownership="none"> <doc xml:space="preserve">whether the button grabs focus when clicked with the mouse</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_file_chooser_button_set_title" version="2.6"> <doc xml:space="preserve">Modifies the @title of the browse dialog used by @button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">the button widget to modify.</doc> <type name="FileChooserButton" c:type="GtkFileChooserButton*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">the new browse dialog title.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_width_chars" c:identifier="gtk_file_chooser_button_set_width_chars" version="2.6"> <doc xml:space="preserve">Sets the width (in characters) that @button will use to @n_chars.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">the button widget to examine.</doc> <type name="FileChooserButton" c:type="GtkFileChooserButton*"/> </instance-parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the new width, in characters.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="dialog" version="2.6" readable="0" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">Instance of the #GtkFileChooserDialog associated with the button.</doc> <type name="FileChooser"/> </property> <property name="title" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Title to put on the #GtkFileChooserDialog associated with the button.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="width-chars" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The width of the entry and label inside the button, in characters.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="FileChooserButtonPrivate" c:type="GtkFileChooserButtonPrivate*"/> </field> <glib:signal name="file-set" when="first" version="2.12"> <doc xml:space="preserve">The ::file-set signal is emitted when the user selects a file. Note that this signal is only emitted when the user changes the file.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="FileChooserButtonClass" c:type="GtkFileChooserButtonClass" glib:is-gtype-struct-for="FileChooserButton"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="file_set"> <callback name="file_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="fc" transfer-ownership="none"> <type name="FileChooserButton" c:type="GtkFileChooserButton*"/> </parameter> </parameters> </callback> </field> <field name="__gtk_reserved1" readable="0" private="1"> <type name="gpointer" c:type="void*"/> </field> <field name="__gtk_reserved2" readable="0" private="1"> <type name="gpointer" c:type="void*"/> </field> <field name="__gtk_reserved3" readable="0" private="1"> <type name="gpointer" c:type="void*"/> </field> <field name="__gtk_reserved4" readable="0" private="1"> <type name="gpointer" c:type="void*"/> </field> </record> <record name="FileChooserButtonPrivate" c:type="GtkFileChooserButtonPrivate" disguised="1"> </record> <enumeration name="FileChooserConfirmation" version="2.8" glib:type-name="GtkFileChooserConfirmation" glib:get-type="gtk_file_chooser_confirmation_get_type" c:type="GtkFileChooserConfirmation"> <doc xml:space="preserve">Used as a return value of handlers for the #GtkFileChooser::confirm-overwrite signal of a #GtkFileChooser. This value determines whether the file chooser will present the stock confirmation dialog, accept the userâs choice of a filename, or let the user choose another filename.</doc> <member name="confirm" value="0" c:identifier="GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM" glib:nick="confirm"> <doc xml:space="preserve">The file chooser will present its stock dialog to confirm about overwriting an existing file.</doc> </member> <member name="accept_filename" value="1" c:identifier="GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME" glib:nick="accept-filename"> <doc xml:space="preserve">The file chooser will terminate and accept the userâs choice of a file name.</doc> </member> <member name="select_again" value="2" c:identifier="GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN" glib:nick="select-again"> <doc xml:space="preserve">The file chooser will continue running, so as to let the user select another file name.</doc> </member> </enumeration> <class name="FileChooserDialog" c:symbol-prefix="file_chooser_dialog" c:type="GtkFileChooserDialog" parent="Dialog" glib:type-name="GtkFileChooserDialog" glib:get-type="gtk_file_chooser_dialog_get_type" glib:type-struct="FileChooserDialogClass"> <doc xml:space="preserve">#GtkFileChooserDialog is a dialog box suitable for use with âFile/Openâ or âFile/Save asâ commands. This widget works by putting a #GtkFileChooserWidget inside a #GtkDialog. It exposes the #GtkFileChooser interface, so you can use all of the #GtkFileChooser functions on the file chooser dialog as well as those for #GtkDialog. Note that #GtkFileChooserDialog does not have any methods of its own. Instead, you should use the functions that work on a #GtkFileChooser. If you want to integrate well with the platform you should use the #GtkFileChooserNative API, which will use a platform-specific dialog if available and fall back to GtkFileChooserDialog otherwise. ## Typical usage ## {#gtkfilechooser-typical-usage} In the simplest of cases, you can the following code to use #GtkFileChooserDialog to select a file for opening: |[ GtkWidget *dialog; GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN; gint res; dialog = gtk_file_chooser_dialog_new ("Open File", parent_window, action, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); res = gtk_dialog_run (GTK_DIALOG (dialog)); if (res == GTK_RESPONSE_ACCEPT) { char *filename; GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog); filename = gtk_file_chooser_get_filename (chooser); open_file (filename); g_free (filename); } gtk_widget_destroy (dialog); ]| To use a dialog for saving, you can use this: |[ GtkWidget *dialog; GtkFileChooser *chooser; GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE; gint res; dialog = gtk_file_chooser_dialog_new ("Save File", parent_window, action, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Save"), GTK_RESPONSE_ACCEPT, NULL); chooser = GTK_FILE_CHOOSER (dialog); gtk_file_chooser_set_do_overwrite_confirmation (chooser, TRUE); if (user_edited_a_new_document) gtk_file_chooser_set_current_name (chooser, _("Untitled document")); else gtk_file_chooser_set_filename (chooser, existing_filename); res = gtk_dialog_run (GTK_DIALOG (dialog)); if (res == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (chooser); save_to_file (filename); g_free (filename); } gtk_widget_destroy (dialog); ]| ## Setting up a file chooser dialog ## {#gtkfilechooserdialog-setting-up} There are various cases in which you may need to use a #GtkFileChooserDialog: - To select a file for opening. Use #GTK_FILE_CHOOSER_ACTION_OPEN. - To save a file for the first time. Use #GTK_FILE_CHOOSER_ACTION_SAVE, and suggest a name such as âUntitledâ with gtk_file_chooser_set_current_name(). - To save a file under a different name. Use #GTK_FILE_CHOOSER_ACTION_SAVE, and set the existing filename with gtk_file_chooser_set_filename(). - To choose a folder instead of a file. Use #GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER. Note that old versions of the file chooserâs documentation suggested using gtk_file_chooser_set_current_folder() in various situations, with the intention of letting the application suggest a reasonable default folder. This is no longer considered to be a good policy, as now the file chooser is able to make good suggestions on its own. In general, you should only cause the file chooser to show a specific folder when it is appropriate to use gtk_file_chooser_set_filename(), i.e. when you are doing a Save As command and you already have a file saved somewhere. ## Response Codes ## {#gtkfilechooserdialog-responses} #GtkFileChooserDialog inherits from #GtkDialog, so buttons that go in its action area have response codes such as #GTK_RESPONSE_ACCEPT and #GTK_RESPONSE_CANCEL. For example, you could call gtk_file_chooser_dialog_new() as follows: |[ GtkWidget *dialog; GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN; dialog = gtk_file_chooser_dialog_new ("Open File", parent_window, action, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); ]| This will create buttons for âCancelâ and âOpenâ that use stock response identifiers from #GtkResponseType. For most dialog boxes you can use your own custom response codes rather than the ones in #GtkResponseType, but #GtkFileChooserDialog assumes that its âacceptâ-type action, e.g. an âOpenâ or âSaveâ button, will have one of the following response codes: - #GTK_RESPONSE_ACCEPT - #GTK_RESPONSE_OK - #GTK_RESPONSE_YES - #GTK_RESPONSE_APPLY This is because #GtkFileChooserDialog must intercept responses and switch to folders if appropriate, rather than letting the dialog terminate â the implementation uses these known response codes to know which responses can be blocked if appropriate. To summarize, make sure you use a [stock response code][gtkfilechooserdialog-responses] when you use #GtkFileChooserDialog to ensure proper operation.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="FileChooser"/> <constructor name="new" c:identifier="gtk_file_chooser_dialog_new" version="2.4" introspectable="0"> <doc xml:space="preserve">Creates a new #GtkFileChooserDialog. This function is analogous to gtk_dialog_new_with_buttons().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFileChooserDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Title of the dialog, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Transient parent of the dialog, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">Open or save mode for the dialog</doc> <type name="FileChooserAction" c:type="GtkFileChooserAction"/> </parameter> <parameter name="first_button_text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">stock ID or text to go in the first button, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">response ID for the first button, then additional (button, id) pairs, ending with %NULL</doc> <varargs/> </parameter> </parameters> </constructor> <field name="parent_instance"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv"> <type name="FileChooserDialogPrivate" c:type="GtkFileChooserDialogPrivate*"/> </field> </class> <record name="FileChooserDialogClass" c:type="GtkFileChooserDialogClass" glib:is-gtype-struct-for="FileChooserDialog"> <field name="parent_class"> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FileChooserDialogPrivate" c:type="GtkFileChooserDialogPrivate" disguised="1"> </record> <enumeration name="FileChooserError" glib:type-name="GtkFileChooserError" glib:get-type="gtk_file_chooser_error_get_type" c:type="GtkFileChooserError" glib:error-domain="gtk-file-chooser-error-quark"> <doc xml:space="preserve">These identify the various errors that can occur while calling #GtkFileChooser functions.</doc> <member name="nonexistent" value="0" c:identifier="GTK_FILE_CHOOSER_ERROR_NONEXISTENT" glib:nick="nonexistent"> <doc xml:space="preserve">Indicates that a file does not exist.</doc> </member> <member name="bad_filename" value="1" c:identifier="GTK_FILE_CHOOSER_ERROR_BAD_FILENAME" glib:nick="bad-filename"> <doc xml:space="preserve">Indicates a malformed filename.</doc> </member> <member name="already_exists" value="2" c:identifier="GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS" glib:nick="already-exists"> <doc xml:space="preserve">Indicates a duplicate path (e.g. when adding a bookmark).</doc> </member> <member name="incomplete_hostname" value="3" c:identifier="GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME" glib:nick="incomplete-hostname"> <doc xml:space="preserve">Indicates an incomplete hostname (e.g. "http://foo" without a slash after that).</doc> </member> <function name="quark" c:identifier="gtk_file_chooser_error_quark" version="2.4"> <doc xml:space="preserve">Registers an error quark for #GtkFileChooser if necessary.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The error quark used for #GtkFileChooser errors.</doc> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> </enumeration> <class name="FileChooserNative" c:symbol-prefix="file_chooser_native" c:type="GtkFileChooserNative" parent="NativeDialog" glib:type-name="GtkFileChooserNative" glib:get-type="gtk_file_chooser_native_get_type" glib:type-struct="FileChooserNativeClass"> <doc xml:space="preserve">#GtkFileChooserNative is an abstraction of a dialog box suitable for use with âFile/Openâ or âFile/Save asâ commands. By default, this just uses a #GtkFileChooserDialog to implement the actual dialog. However, on certain platforms, such as Windows and macOS, the native platform file chooser is used instead. When the application is running in a sandboxed environment without direct filesystem access (such as Flatpak), #GtkFileChooserNative may call the proper APIs (portals) to let the user choose a file and make it available to the application. While the API of #GtkFileChooserNative closely mirrors #GtkFileChooserDialog, the main difference is that there is no access to any #GtkWindow or #GtkWidget for the dialog. This is required, as there may not be one in the case of a platform native dialog. Showing, hiding and running the dialog is handled by the #GtkNativeDialog functions. ## Typical usage ## {#gtkfilechoosernative-typical-usage} In the simplest of cases, you can the following code to use #GtkFileChooserDialog to select a file for opening: |[ GtkFileChooserNative *native; GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN; gint res; native = gtk_file_chooser_native_new ("Open File", parent_window, action, "_Open", "_Cancel"); res = gtk_native_dialog_run (GTK_NATIVE_DIALOG (native)); if (res == GTK_RESPONSE_ACCEPT) { char *filename; GtkFileChooser *chooser = GTK_FILE_CHOOSER (native); filename = gtk_file_chooser_get_filename (chooser); open_file (filename); g_free (filename); } g_object_unref (native); ]| To use a dialog for saving, you can use this: |[ GtkFileChooserNative *native; GtkFileChooser *chooser; GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE; gint res; native = gtk_file_chooser_native_new ("Save File", parent_window, action, "_Save", "_Cancel"); chooser = GTK_FILE_CHOOSER (native); gtk_file_chooser_set_do_overwrite_confirmation (chooser, TRUE); if (user_edited_a_new_document) gtk_file_chooser_set_current_name (chooser, _("Untitled document")); else gtk_file_chooser_set_filename (chooser, existing_filename); res = gtk_native_dialog_run (GTK_NATIVE_DIALOG (native)); if (res == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (chooser); save_to_file (filename); g_free (filename); } g_object_unref (native); ]| For more information on how to best set up a file dialog, see #GtkFileChooserDialog. ## Response Codes ## {#gtkfilechooserdialognative-responses} #GtkFileChooserNative inherits from #GtkNativeDialog, which means it will return #GTK_RESPONSE_ACCEPT if the user accepted, and #GTK_RESPONSE_CANCEL if he pressed cancel. It can also return #GTK_RESPONSE_DELETE_EVENT if the window was unexpectedly closed. ## Differences from #GtkFileChooserDialog ## {#gtkfilechooserdialognative-differences} There are a few things in the GtkFileChooser API that are not possible to use with #GtkFileChooserNative, as such use would prohibit the use of a native dialog. There is no support for the signals that are emitted when the user navigates in the dialog, including: * #GtkFileChooser::current-folder-changed * #GtkFileChooser::selection-changed * #GtkFileChooser::file-activated * #GtkFileChooser::confirm-overwrite You can also not use the methods that directly control user navigation: * gtk_file_chooser_unselect_filename() * gtk_file_chooser_select_all() * gtk_file_chooser_unselect_all() If you need any of the above you will have to use #GtkFileChooserDialog directly. No operations that change the the dialog work while the dialog is visible. Set all the properties that are required before showing the dialog. ## Win32 details ## {#gtkfilechooserdialognative-win32} On windows the IFileDialog implementation (added in Windows Vista) is used. It supports many of the features that #GtkFileChooserDialog does, but there are some things it does not handle: * Extra widgets added with gtk_file_chooser_set_extra_widget(). * Use of custom previews by connecting to #GtkFileChooser::update-preview. * Any #GtkFileFilter added using a mimetype or custom filter. If any of these features are used the regular #GtkFileChooserDialog will be used in place of the native one. ## Portal details ## {#gtkfilechooserdialognative-portal} When the org.freedesktop.portal.FileChooser portal is available on the session bus, it is used to bring up an out-of-process file chooser. Depending on the kind of session the application is running in, this may or may not be a GTK+ file chooser. In this situation, the following things are not supported and will be silently ignored: * Extra widgets added with gtk_file_chooser_set_extra_widget(). * Use of custom previews by connecting to #GtkFileChooser::update-preview. * Any #GtkFileFilter added with a custom filter. ## macOS details ## {#gtkfilechooserdialognative-macos} On macOS the NSSavePanel and NSOpenPanel classes are used to provide native file chooser dialogs. Some features provided by #GtkFileChooserDialog are not supported: * Extra widgets added with gtk_file_chooser_set_extra_widget(), unless the widget is an instance of GtkLabel, in which case the label text will be used to set the NSSavePanel message instance property. * Use of custom previews by connecting to #GtkFileChooser::update-preview. * Any #GtkFileFilter added with a custom filter. * Shortcut folders.</doc> <implements name="FileChooser"/> <constructor name="new" c:identifier="gtk_file_chooser_native_new" version="3.20"> <doc xml:space="preserve">Creates a new #GtkFileChooserNative.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkFileChooserNative</doc> <type name="FileChooserNative" c:type="GtkFileChooserNative*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Title of the native, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Transient parent of the native, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">Open or save mode for the dialog</doc> <type name="FileChooserAction" c:type="GtkFileChooserAction"/> </parameter> <parameter name="accept_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">text to go in the accept button, or %NULL for the default</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="cancel_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">text to go in the cancel button, or %NULL for the default</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_accept_label" c:identifier="gtk_file_chooser_native_get_accept_label" version="3.20"> <doc xml:space="preserve">Retrieves the custom label text for the accept button.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The custom label, or %NULL for the default. This string is owned by GTK+ and should not be modified or freed</doc> <type name="utf8" c:type="const char*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtFileChooserNative</doc> <type name="FileChooserNative" c:type="GtkFileChooserNative*"/> </instance-parameter> </parameters> </method> <method name="get_cancel_label" c:identifier="gtk_file_chooser_native_get_cancel_label" version="3.20"> <doc xml:space="preserve">Retrieves the custom label text for the cancel button.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The custom label, or %NULL for the default. This string is owned by GTK+ and should not be modified or freed</doc> <type name="utf8" c:type="const char*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtFileChooserNative</doc> <type name="FileChooserNative" c:type="GtkFileChooserNative*"/> </instance-parameter> </parameters> </method> <method name="set_accept_label" c:identifier="gtk_file_chooser_native_set_accept_label" version="3.20"> <doc xml:space="preserve">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 activates the button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtFileChooserNative</doc> <type name="FileChooserNative" c:type="GtkFileChooserNative*"/> </instance-parameter> <parameter name="accept_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">custom label or %NULL for the default</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="set_cancel_label" c:identifier="gtk_file_chooser_native_set_cancel_label" version="3.20"> <doc xml:space="preserve">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 activates the button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtFileChooserNative</doc> <type name="FileChooserNative" c:type="GtkFileChooserNative*"/> </instance-parameter> <parameter name="cancel_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">custom label or %NULL for the default</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <property name="accept-label" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text used for the label on the accept button in the dialog, or %NULL to use the default text.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="cancel-label" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text used for the label on the cancel button in the dialog, or %NULL to use the default text.</doc> <type name="utf8" c:type="gchar*"/> </property> </class> <record name="FileChooserNativeClass" c:type="GtkFileChooserNativeClass" glib:is-gtype-struct-for="FileChooserNative"> <field name="parent_class"> <type name="NativeDialogClass" c:type="GtkNativeDialogClass"/> </field> </record> <class name="FileChooserWidget" c:symbol-prefix="file_chooser_widget" c:type="GtkFileChooserWidget" parent="Box" glib:type-name="GtkFileChooserWidget" glib:get-type="gtk_file_chooser_widget_get_type" glib:type-struct="FileChooserWidgetClass"> <doc xml:space="preserve">#GtkFileChooserWidget is a widget for choosing files. It exposes the #GtkFileChooser interface, and you should use the methods of this interface to interact with the widget. # CSS nodes GtkFileChooserWidget has a single CSS node with name filechooser.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="FileChooser"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_file_chooser_widget_new" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFileChooserWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">Open or save mode for the widget</doc> <type name="FileChooserAction" c:type="GtkFileChooserAction"/> </parameter> </parameters> </constructor> <property name="search-mode" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="subtitle" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_instance"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv"> <type name="FileChooserWidgetPrivate" c:type="GtkFileChooserWidgetPrivate*"/> </field> <glib:signal name="desktop-folder" when="first" action="1"> <doc xml:space="preserve">The ::desktop-folder signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. 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 `Alt + D`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="down-folder" when="first" action="1"> <doc xml:space="preserve">The ::down-folder signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. 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 "/foo/bar/baz", with bar currently displayed, then this will cause the file chooser to switch to the "baz" subfolder. The default binding for this signal is `Alt + Down`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="home-folder" when="first" action="1"> <doc xml:space="preserve">The ::home-folder signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. 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 `Alt + Home`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="location-popup" when="first" action="1"> <doc xml:space="preserve">The ::location-popup signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. This is used to make the file chooser show a "Location" 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 `Control + L` with a @path string of "" (the empty string). It is also bound to `/` with a @path string of "`/`" (a slash): this lets you type `/` and immediately type a path name. On Unix systems, this is bound to `~` (tilde) with a @path string of "~" itself for access to home directories.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a string that gets put in the text entry for the file name</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="location-popup-on-paste" when="first" action="1"> <doc xml:space="preserve">The ::location-popup-on-paste signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. This is used to make the file chooser show a "Location" prompt when the user pastes into a #GtkFileChooserWidget. The default binding for this signal is `Control + V`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="location-toggle-popup" when="first" action="1"> <doc xml:space="preserve">The ::location-toggle-popup signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. This is used to toggle the visibility of a "Location" 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 `Control + L`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="places-shortcut" when="first" action="1"> <doc xml:space="preserve">The ::places-shortcut signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. This is used to move the focus to the places sidebar. The default binding for this signal is `Alt + P`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="quick-bookmark" when="first" action="1"> <doc xml:space="preserve">The ::quick-bookmark signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. 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 `Alt + 1`, `Alt + 2`, etc. until `Alt + 0`. Note that in the default binding, that `Alt + 1` is actually defined to switch to the bookmark at index 0, and so on successively; `Alt + 0` is defined to switch to the bookmark at index 10.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="bookmark_index" transfer-ownership="none"> <doc xml:space="preserve">the number of the bookmark to switch to</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="recent-shortcut" when="first" action="1"> <doc xml:space="preserve">The ::recent-shortcut signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. This is used to make the file chooser show the Recent location. The default binding for this signal is `Alt + R`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="search-shortcut" when="first" action="1"> <doc xml:space="preserve">The ::search-shortcut signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. This is used to make the file chooser show the search entry. The default binding for this signal is `Alt + S`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="show-hidden" when="first" action="1"> <doc xml:space="preserve">The ::show-hidden signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. This is used to make the file chooser display hidden files. The default binding for this signal is `Control + H`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="up-folder" when="first" action="1"> <doc xml:space="preserve">The ::up-folder signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. 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 `Alt + Up`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="FileChooserWidgetClass" c:type="GtkFileChooserWidgetClass" glib:is-gtype-struct-for="FileChooserWidget"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FileChooserWidgetPrivate" c:type="GtkFileChooserWidgetPrivate" disguised="1"> </record> <class name="FileFilter" c:symbol-prefix="file_filter" c:type="GtkFileFilter" parent="GObject.InitiallyUnowned" glib:type-name="GtkFileFilter" glib:get-type="gtk_file_filter_get_type"> <doc xml:space="preserve">A GtkFileFilter can be used to restrict the files being shown in a #GtkFileChooser. Files can be filtered based on their name (with gtk_file_filter_add_pattern()), on their mime type (with gtk_file_filter_add_mime_type()), or by a custom filter function (with gtk_file_filter_add_custom()). Filtering by mime types handles aliasing and subclassing of mime types; e.g. a filter for text/plain also matches a file with mime type application/rtf, since application/rtf is a subclass of text/plain. Note that #GtkFileFilter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/\*. Normally, filters are used by adding them to a #GtkFileChooser, see gtk_file_chooser_add_filter(), but it is also possible to manually use a filter on a file with gtk_file_filter_filter(). # GtkFileFilter as GtkBuildable The GtkFileFilter implementation of the GtkBuildable interface supports adding rules using the <mime-types>, <patterns> and <applications> elements and listing the rules within. Specifying a <mime-type> or <pattern> has the same effect as as calling gtk_file_filter_add_mime_type() or gtk_file_filter_add_pattern(). An example of a UI definition fragment specifying GtkFileFilter rules: |[ <object class="GtkFileFilter"> <mime-types> <mime-type>text/plain</mime-type> <mime-type>image/ *</mime-type> </mime-types> <patterns> <pattern>*.txt</pattern> <pattern>*.png</pattern> </patterns> </object> ]|</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_file_filter_new" version="2.4"> <doc xml:space="preserve">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 gtk_file_filter_add_mime_type(), gtk_file_filter_add_pattern(), or gtk_file_filter_add_custom(). To create a filter that accepts any file, use: |[<!-- language="C" --> GtkFileFilter *filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*"); ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </return-value> </constructor> <constructor name="new_from_gvariant" c:identifier="gtk_file_filter_new_from_gvariant" version="3.22"> <doc xml:space="preserve">Deserialize a file filter from an a{sv} variant in the format produced by gtk_file_filter_to_gvariant().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkFileFilter object</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </return-value> <parameters> <parameter name="variant" transfer-ownership="none"> <doc xml:space="preserve">an a{sv} #GVariant</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </constructor> <method name="add_custom" c:identifier="gtk_file_filter_add_custom" version="2.4"> <doc xml:space="preserve">Adds rule to a filter that allows files based on a custom callback function. The bitfield @needed which is passed in provides information about what sorts of information that the filter function needs; this allows GTK+ to avoid retrieving expensive information when it isnât needed by the filter.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> <parameter name="needed" transfer-ownership="none"> <doc xml:space="preserve">bitfield of flags indicating the information that the custom filter function needs.</doc> <type name="FileFilterFlags" c:type="GtkFileFilterFlags"/> </parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">callback function; if the function returns %TRUE, then the file will be displayed.</doc> <type name="FileFilterFunc" c:type="GtkFileFilterFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="notify" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function to call to free @data when it is no longer needed.</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="add_mime_type" c:identifier="gtk_file_filter_add_mime_type" version="2.4"> <doc xml:space="preserve">Adds a rule allowing a given mime type to @filter.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> <parameter name="mime_type" transfer-ownership="none"> <doc xml:space="preserve">name of a MIME type</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_pattern" c:identifier="gtk_file_filter_add_pattern" version="2.4"> <doc xml:space="preserve">Adds a rule allowing a shell style glob to a filter.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> <parameter name="pattern" transfer-ownership="none"> <doc xml:space="preserve">a shell style glob</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_pixbuf_formats" c:identifier="gtk_file_filter_add_pixbuf_formats" version="2.6"> <doc xml:space="preserve">Adds a rule allowing image files in the formats supported by GdkPixbuf.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> </parameters> </method> <method name="filter" c:identifier="gtk_file_filter_filter" version="2.4"> <doc xml:space="preserve">Tests whether a file should be displayed according to @filter. The #GtkFileFilterInfo @filter_info should include the fields returned from gtk_file_filter_get_needed(). This function will not typically be used by applications; it is intended principally for use in the implementation of #GtkFileChooser.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the file should be displayed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> <parameter name="filter_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilterInfo containing information about a file.</doc> <type name="FileFilterInfo" c:type="const GtkFileFilterInfo*"/> </parameter> </parameters> </method> <method name="get_name" c:identifier="gtk_file_filter_get_name" version="2.4"> <doc xml:space="preserve">Gets the human-readable name for the filter. See gtk_file_filter_set_name().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The human-readable name of the filter, or %NULL. This value is owned by GTK+ and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> </parameters> </method> <method name="get_needed" c:identifier="gtk_file_filter_get_needed" version="2.4"> <doc xml:space="preserve">Gets the fields that need to be filled in for the #GtkFileFilterInfo passed to gtk_file_filter_filter() This function will not typically be used by applications; it is intended principally for use in the implementation of #GtkFileChooser.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">bitfield of flags indicating needed fields when calling gtk_file_filter_filter()</doc> <type name="FileFilterFlags" c:type="GtkFileFilterFlags"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> </parameters> </method> <method name="set_name" c:identifier="gtk_file_filter_set_name" version="2.4"> <doc xml:space="preserve">Sets the human-readable name of the filter; this is the string that will be displayed in the file selector user interface if there is a selectable list of filters.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the human-readable-name for the filter, or %NULL to remove any existing name.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="to_gvariant" c:identifier="gtk_file_filter_to_gvariant" version="3.22"> <doc xml:space="preserve">Serialize a file filter to an a{sv} variant.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new, floating, #GVariant</doc> <type name="GLib.Variant" c:type="GVariant*"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilter</doc> <type name="FileFilter" c:type="GtkFileFilter*"/> </instance-parameter> </parameters> </method> </class> <bitfield name="FileFilterFlags" glib:type-name="GtkFileFilterFlags" glib:get-type="gtk_file_filter_flags_get_type" c:type="GtkFileFilterFlags"> <doc xml:space="preserve">These flags indicate what parts of a #GtkFileFilterInfo struct are filled or need to be filled.</doc> <member name="filename" value="1" c:identifier="GTK_FILE_FILTER_FILENAME" glib:nick="filename"> <doc xml:space="preserve">the filename of the file being tested</doc> </member> <member name="uri" value="2" c:identifier="GTK_FILE_FILTER_URI" glib:nick="uri"> <doc xml:space="preserve">the URI for the file being tested</doc> </member> <member name="display_name" value="4" c:identifier="GTK_FILE_FILTER_DISPLAY_NAME" glib:nick="display-name"> <doc xml:space="preserve">the string that will be used to display the file in the file chooser</doc> </member> <member name="mime_type" value="8" c:identifier="GTK_FILE_FILTER_MIME_TYPE" glib:nick="mime-type"> <doc xml:space="preserve">the mime type of the file</doc> </member> </bitfield> <callback name="FileFilterFunc" c:type="GtkFileFilterFunc"> <doc xml:space="preserve">The type of function that is used with custom filters, see gtk_file_filter_add_custom().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the file should be displayed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="filter_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFileFilterInfo that is filled according to the @needed flags passed to gtk_file_filter_add_custom()</doc> <type name="FileFilterInfo" c:type="const GtkFileFilterInfo*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data passed to gtk_file_filter_add_custom()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="FileFilterInfo" c:type="GtkFileFilterInfo"> <doc xml:space="preserve">A #GtkFileFilterInfo-struct is used to pass information about the tested file to gtk_file_filter_filter().</doc> <field name="contains" writable="1"> <doc xml:space="preserve">Flags indicating which of the following fields need are filled</doc> <type name="FileFilterFlags" c:type="GtkFileFilterFlags"/> </field> <field name="filename" writable="1"> <doc xml:space="preserve">the filename of the file being tested</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="uri" writable="1"> <doc xml:space="preserve">the URI for the file being tested</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="display_name" writable="1"> <doc xml:space="preserve">the string that will be used to display the file in the file chooser</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="mime_type" writable="1"> <doc xml:space="preserve">the mime type of the file</doc> <type name="utf8" c:type="const gchar*"/> </field> </record> <class name="Fixed" c:symbol-prefix="fixed" c:type="GtkFixed" parent="Container" glib:type-name="GtkFixed" glib:get-type="gtk_fixed_get_type" glib:type-struct="FixedClass"> <doc xml:space="preserve">The #GtkFixed widget is a container which can place child widgets at fixed positions and with fixed sizes, given in pixels. #GtkFixed performs no automatic layout management. For most applications, you should not use this container! It keeps you from having to learn about the other GTK+ containers, but it results in broken applications. With #GtkFixed, the following things will result in truncated text, overlapping widgets, and other display bugs: - Themes, which may change widget sizes. - Fonts other than the one you used to write the app will of course change the size of widgets containing text; keep in mind that users may use a larger font because of difficulty reading the default, or they may be using a different OS that provides different fonts. - Translation of text into other languages changes its size. Also, display of non-English text will use a different font in many cases. In addition, #GtkFixed does not pay attention to text direction and thus may produce unwanted results if your app is run under right-to-left languages such as Hebrew or Arabic. That is: normally GTK+ will order containers appropriately for the text direction, e.g. to put labels to the right of the thing they label when using an RTL language, but it canât do that with #GtkFixed. So if you need to reorder widgets depending on the text direction, you would need to manually detect it and adjust child positions accordingly. Finally, fixed positioning makes it kind of annoying to add/remove GUI elements, since you have to reposition all the other elements. This is a long-term maintenance problem for your application. If you know none of these things are an issue for your application, and prefer the simplicity of #GtkFixed, by all means use the widget. But you should be aware of the tradeoffs. See also #GtkLayout, which shares the ability to perform fixed positioning of child widgets and additionally adds custom drawing and scrollability.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_fixed_new"> <doc xml:space="preserve">Creates a new #GtkFixed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFixed.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="move" c:identifier="gtk_fixed_move"> <doc xml:space="preserve">Moves a child of a #GtkFixed container to the given position.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fixed" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFixed.</doc> <type name="Fixed" c:type="GtkFixed*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the child widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the horizontal position to move the widget to.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the vertical position to move the widget to.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="put" c:identifier="gtk_fixed_put"> <doc xml:space="preserve">Adds a widget to a #GtkFixed container at the given position.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fixed" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFixed.</doc> <type name="Fixed" c:type="GtkFixed*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to add.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the horizontal position to place the widget at.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the vertical position to place the widget at.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="FixedPrivate" c:type="GtkFixedPrivate*"/> </field> </class> <record name="FixedChild" c:type="GtkFixedChild"> <field name="widget" writable="1"> <type name="Widget" c:type="GtkWidget*"/> </field> <field name="x" writable="1"> <type name="gint" c:type="gint"/> </field> <field name="y" writable="1"> <type name="gint" c:type="gint"/> </field> </record> <record name="FixedClass" c:type="GtkFixedClass" glib:is-gtype-struct-for="Fixed"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FixedPrivate" c:type="GtkFixedPrivate" disguised="1"> </record> <class name="FlowBox" c:symbol-prefix="flow_box" c:type="GtkFlowBox" parent="Container" glib:type-name="GtkFlowBox" glib:get-type="gtk_flow_box_get_type" glib:type-struct="FlowBoxClass"> <doc xml:space="preserve">A GtkFlowBox positions child widgets in sequence according to its orientation. For instance, with the horizontal orientation, the widgets will be arranged from left to right, starting a new row under the previous row when necessary. Reducing the width in this case will require more rows, so a larger height will be requested. Likewise, with the vertical orientation, the widgets will be arranged from top to bottom, starting a new column to the right when necessary. Reducing the height will require more columns, so a larger width will be requested. The size request of a GtkFlowBox alone may not be what you expect; if you need to be able to shrink it along both axes and dynamically reflow its children, you may have to wrap it in a #GtkScrolledWindow to enable that. The children of a GtkFlowBox can be dynamically sorted and filtered. Although a GtkFlowBox must have only #GtkFlowBoxChild children, you can add any kind of widget to it via gtk_container_add(), and a GtkFlowBoxChild widget will automatically be inserted between the box and the widget. Also see #GtkListBox. GtkFlowBox was added in GTK+ 3.12. # CSS nodes |[<!-- language="plain" --> flowbox âââ flowboxchild â â°ââ <child> âââ flowboxchild â â°ââ <child> â â°ââ [rubberband] ]| GtkFlowBox uses a single CSS node with name flowbox. GtkFlowBoxChild uses a single CSS node with name flowboxchild. For rubberband selection, a subnode with name rubberband is used.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_flow_box_new" version="3.12"> <doc xml:space="preserve">Creates a GtkFlowBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFlowBox container</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="activate_cursor_child"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="child_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_cursor"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="select_all" invoker="select_all" version="3.12"> <doc xml:space="preserve">Select all children of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="selected_children_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="toggle_cursor_child"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="unselect_all" invoker="unselect_all" version="3.12"> <doc xml:space="preserve">Unselect all children of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </virtual-method> <method name="bind_model" c:identifier="gtk_flow_box_bind_model" version="3.18"> <doc xml:space="preserve">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 gtk_flow_box_insert() or gtk_container_add()) 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GListModel to be bound to @box</doc> <type name="Gio.ListModel" c:type="GListModel*"/> </parameter> <parameter name="create_widget_func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">a function that creates widgets for items</doc> <type name="FlowBoxCreateWidgetFunc" c:type="GtkFlowBoxCreateWidgetFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data passed to @create_widget_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="user_data_free_func" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function for freeing @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="get_activate_on_single_click" c:identifier="gtk_flow_box_get_activate_on_single_click" version="3.12"> <doc xml:space="preserve">Returns whether children activate on single clicks.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if children are activated on single click, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="get_child_at_index" c:identifier="gtk_flow_box_get_child_at_index" version="3.12"> <doc xml:space="preserve">Gets the nth child in the @box.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the child widget, which will always be a #GtkFlowBoxChild or %NULL in case no child widget with the given index exists.</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="idx" transfer-ownership="none"> <doc xml:space="preserve">the position of the child</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_child_at_pos" c:identifier="gtk_flow_box_get_child_at_pos" version="3.22.6"> <doc xml:space="preserve">Gets the child in the (@x, @y) position.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the child widget, which will always be a #GtkFlowBoxChild or %NULL in case no child widget exists for the given x and y coordinates.</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x coordinate of the child</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y coordinate of the child</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_column_spacing" c:identifier="gtk_flow_box_get_column_spacing" version="3.12"> <doc xml:space="preserve">Gets the horizontal spacing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the horizontal spacing</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="get_homogeneous" c:identifier="gtk_flow_box_get_homogeneous" version="3.12"> <doc xml:space="preserve">Returns whether the box is homogeneous (all children are the same size). See gtk_box_set_homogeneous().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the box is homogeneous.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="get_max_children_per_line" c:identifier="gtk_flow_box_get_max_children_per_line" version="3.12"> <doc xml:space="preserve">Gets the maximum number of children per line.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the maximum number of children per line</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="get_min_children_per_line" c:identifier="gtk_flow_box_get_min_children_per_line" version="3.12"> <doc xml:space="preserve">Gets the minimum number of children per line.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the minimum number of children per line</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="get_row_spacing" c:identifier="gtk_flow_box_get_row_spacing" version="3.12"> <doc xml:space="preserve">Gets the vertical spacing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical spacing</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="get_selected_children" c:identifier="gtk_flow_box_get_selected_children" version="3.12"> <doc xml:space="preserve">Creates a list of all selected children.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve"> A #GList containing the #GtkWidget for each selected child. Free with g_list_free() when done.</doc> <type name="GLib.List" c:type="GList*"> <type name="FlowBoxChild"/> </type> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="get_selection_mode" c:identifier="gtk_flow_box_get_selection_mode" version="3.12"> <doc xml:space="preserve">Gets the selection mode of @box.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkSelectionMode</doc> <type name="SelectionMode" c:type="GtkSelectionMode"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="insert" c:identifier="gtk_flow_box_insert" version="3.12"> <doc xml:space="preserve">Inserts the @widget into @box at @position. If a sort function is set, the widget will actually be inserted at the calculated position and this function has the same effect as gtk_container_add(). If @position is -1, or larger than the total number of children in the @box, then the @widget will be appended to the end.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position to insert @child in</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="invalidate_filter" c:identifier="gtk_flow_box_invalidate_filter" version="3.12"> <doc xml:space="preserve">Updates the filtering for all children. Call this function when the result of the filter function on the @box is changed due ot 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="invalidate_sort" c:identifier="gtk_flow_box_invalidate_sort" version="3.12"> <doc xml:space="preserve">Updates the sorting for all children. Call this when the result of the sort function on @box is changed due to an external factor.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="select_all" c:identifier="gtk_flow_box_select_all" version="3.12"> <doc xml:space="preserve">Select all children of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="select_child" c:identifier="gtk_flow_box_select_child" version="3.12"> <doc xml:space="preserve">Selects a single child of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @box</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> </parameters> </method> <method name="selected_foreach" c:identifier="gtk_flow_box_selected_foreach" version="3.12"> <doc xml:space="preserve">Calls a function for each selected child. Note that the selection cannot be modified from within this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">the function to call for each selected child</doc> <type name="FlowBoxForeachFunc" c:type="GtkFlowBoxForeachFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to the function</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="set_activate_on_single_click" c:identifier="gtk_flow_box_set_activate_on_single_click" version="3.12"> <doc xml:space="preserve">If @single is %TRUE, children will be activated when you click on them, otherwise you need to double-click.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="single" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to emit child-activated on a single click</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_column_spacing" c:identifier="gtk_flow_box_set_column_spacing" version="3.12"> <doc xml:space="preserve">Sets the horizontal space to add between children. See the #GtkFlowBox:column-spacing property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the spacing to use</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_filter_func" c:identifier="gtk_flow_box_set_filter_func" version="3.12"> <doc xml:space="preserve">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 gtk_flow_box_child_changed()) or when gtk_flow_box_invalidate_filter() is called. Note that using a filter function is incompatible with using a model (see gtk_flow_box_bind_model()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="filter_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">callback that lets you filter which children to show</doc> <type name="FlowBoxFilterFunc" c:type="GtkFlowBoxFilterFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data passed to @filter_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notifier for @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_hadjustment" c:identifier="gtk_flow_box_set_hadjustment" version="3.12"> <doc xml:space="preserve">Hooks up an adjustment to focus handling in @box. The adjustment is also used for autoscrolling during rubberband selection. See gtk_scrolled_window_get_hadjustment() for a typical way of obtaining the adjustment, and gtk_flow_box_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">an adjustment which should be adjusted when the focus is moved among the descendents of @container</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_homogeneous" c:identifier="gtk_flow_box_set_homogeneous" version="3.12"> <doc xml:space="preserve">Sets the #GtkFlowBox:homogeneous property of @box, controlling whether or not all children of @box are given equal space in the box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to create equal allotments, %FALSE for variable allotments</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_max_children_per_line" c:identifier="gtk_flow_box_set_max_children_per_line" version="3.12"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="n_children" transfer-ownership="none"> <doc xml:space="preserve">the maximum number of children per line</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_min_children_per_line" c:identifier="gtk_flow_box_set_min_children_per_line" version="3.12"> <doc xml:space="preserve">Sets the minimum number of children to line up in @boxâs orientation before flowing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="n_children" transfer-ownership="none"> <doc xml:space="preserve">the minimum number of children per line</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_row_spacing" c:identifier="gtk_flow_box_set_row_spacing" version="3.12"> <doc xml:space="preserve">Sets the vertical space to add between children. See the #GtkFlowBox:row-spacing property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the spacing to use</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_selection_mode" c:identifier="gtk_flow_box_set_selection_mode" version="3.12"> <doc xml:space="preserve">Sets how selection works in @box. See #GtkSelectionMode for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">the new selection mode</doc> <type name="SelectionMode" c:type="GtkSelectionMode"/> </parameter> </parameters> </method> <method name="set_sort_func" c:identifier="gtk_flow_box_set_sort_func" version="3.12"> <doc xml:space="preserve">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 gtk_flow_box_child_changed()) and when gtk_flow_box_invalidate_sort() is called. Note that using a sort function is incompatible with using a model (see gtk_flow_box_bind_model()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="sort_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">the sort function</doc> <type name="FlowBoxSortFunc" c:type="GtkFlowBoxSortFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data passed to @sort_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notifier for @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_vadjustment" c:identifier="gtk_flow_box_set_vadjustment" version="3.12"> <doc xml:space="preserve">Hooks up an adjustment to focus handling in @box. The adjustment is also used for autoscrolling during rubberband selection. See gtk_scrolled_window_get_vadjustment() for a typical way of obtaining the adjustment, and gtk_flow_box_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">an adjustment which should be adjusted when the focus is moved among the descendents of @container</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="unselect_all" c:identifier="gtk_flow_box_unselect_all" version="3.12"> <doc xml:space="preserve">Unselect all children of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> </parameters> </method> <method name="unselect_child" c:identifier="gtk_flow_box_unselect_child" version="3.12"> <doc xml:space="preserve">Unselects a single child of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @box</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> </parameters> </method> <property name="activate-on-single-click" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether children can be activated with a single click, or require a double-click.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="column-spacing" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The amount of horizontal space between two children.</doc> <type name="guint" c:type="guint"/> </property> <property name="homogeneous" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether all children should be allocated the same size.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="max-children-per-line" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The maximum amount of children to request space for consecutively in the given orientation.</doc> <type name="guint" c:type="guint"/> </property> <property name="min-children-per-line" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="guint" c:type="guint"/> </property> <property name="row-spacing" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The amount of vertical space between two children.</doc> <type name="guint" c:type="guint"/> </property> <property name="selection-mode" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The selection mode used by the flow box.</doc> <type name="SelectionMode"/> </property> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <glib:signal name="activate-cursor-child" when="last" action="1"> <doc xml:space="preserve">The ::activate-cursor-child signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user activates the @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="child-activated" when="last"> <doc xml:space="preserve">The ::child-activated signal is emitted when a child has been activated by the user.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child that is activated</doc> <type name="FlowBoxChild"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-cursor" when="last" action="1"> <doc xml:space="preserve">The ::move-cursor signal is a [keybinding signal][GtkBindingSignal] 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 come in two variants, the variant with the Shift modifier extends the selection, the variant without the Shift modifer does not. There are too many key combinations to list them all here. - Arrow keys move by individual children - Home/End keys move to the ends of the box - PageUp/PageDown keys move vertically by pages</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">the granularity fo the move, as a #GtkMovementStep</doc> <type name="MovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">the number of @step units to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="select-all" when="last" action="1"> <doc xml:space="preserve">The ::select-all signal is a [keybinding signal][GtkBindingSignal] which gets emitted to select all children of the box, if the selection mode permits it. The default bindings for this signal is Ctrl-a.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="selected-children-changed" when="first"> <doc xml:space="preserve">The ::selected-children-changed signal is emitted when the set of selected children changes. Use gtk_flow_box_selected_foreach() or gtk_flow_box_get_selected_children() to obtain the selected children.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="toggle-cursor-child" when="last" action="1"> <doc xml:space="preserve">The ::toggle-cursor-child signal is a [keybinding signal][GtkBindingSignal] which toggles the selection of the child that has the focus. The default binding for this signal is Ctrl-Space.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="unselect-all" when="last" action="1"> <doc xml:space="preserve">The ::unselect-all signal is a [keybinding signal][GtkBindingSignal] which gets emitted to unselect all children of the box, if the selection mode permits it. The default bindings for this signal is Ctrl-Shift-a.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="FlowBoxAccessible" c:symbol-prefix="flow_box_accessible" c:type="GtkFlowBoxAccessible" parent="ContainerAccessible" glib:type-name="GtkFlowBoxAccessible" glib:get-type="gtk_flow_box_accessible_get_type" glib:type-struct="FlowBoxAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="FlowBoxAccessiblePrivate" c:type="GtkFlowBoxAccessiblePrivate*"/> </field> </class> <record name="FlowBoxAccessibleClass" c:type="GtkFlowBoxAccessibleClass" glib:is-gtype-struct-for="FlowBoxAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="FlowBoxAccessiblePrivate" c:type="GtkFlowBoxAccessiblePrivate" disguised="1"> </record> <class name="FlowBoxChild" c:symbol-prefix="flow_box_child" c:type="GtkFlowBoxChild" parent="Bin" glib:type-name="GtkFlowBoxChild" glib:get-type="gtk_flow_box_child_get_type" glib:type-struct="FlowBoxChildClass"> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_flow_box_child_new" version="3.12"> <doc xml:space="preserve">Creates a new #GtkFlowBoxChild, to be used as a child of a #GtkFlowBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFlowBoxChild</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="child" transfer-ownership="none"> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </instance-parameter> </parameters> </virtual-method> <method name="changed" c:identifier="gtk_flow_box_child_changed" version="3.12"> <doc xml:space="preserve">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 gtk_flow_box_invalidate_sort() on any model change, but that is more expensive.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBoxChild</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </instance-parameter> </parameters> </method> <method name="get_index" c:identifier="gtk_flow_box_child_get_index" version="3.12"> <doc xml:space="preserve">Gets the current index of the @child in its #GtkFlowBox container.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index of the @child, or -1 if the @child is not in a flow box.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBoxChild</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </instance-parameter> </parameters> </method> <method name="is_selected" c:identifier="gtk_flow_box_child_is_selected" version="3.12"> <doc xml:space="preserve">Returns whether the @child is currently selected in its #GtkFlowBox container.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @child is selected</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBoxChild</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </instance-parameter> </parameters> </method> <field name="parent_instance"> <type name="Bin" c:type="GtkBin"/> </field> <glib:signal name="activate" when="first" action="1"> <doc xml:space="preserve">The ::activate signal is emitted when the user activates a child widget in a #GtkFlowBox, either by clicking or double-clicking, or by using the Space or Enter key. While this signal is used as a [keybinding signal][GtkBindingSignal], it can be used by applications for their own purposes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="FlowBoxChildAccessible" c:symbol-prefix="flow_box_child_accessible" c:type="GtkFlowBoxChildAccessible" parent="ContainerAccessible" glib:type-name="GtkFlowBoxChildAccessible" glib:get-type="gtk_flow_box_child_accessible_get_type" glib:type-struct="FlowBoxChildAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> </class> <record name="FlowBoxChildAccessibleClass" c:type="GtkFlowBoxChildAccessibleClass" glib:is-gtype-struct-for="FlowBoxChildAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="FlowBoxChildClass" c:type="GtkFlowBoxChildClass" glib:is-gtype-struct-for="FlowBoxChild"> <field name="parent_class"> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="child" transfer-ownership="none"> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FlowBoxClass" c:type="GtkFlowBoxClass" glib:is-gtype-struct-for="FlowBox"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="child_activated"> <callback name="child_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> </parameters> </callback> </field> <field name="selected_children_changed"> <callback name="selected_children_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </parameter> </parameters> </callback> </field> <field name="activate_cursor_child"> <callback name="activate_cursor_child"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </parameter> </parameters> </callback> </field> <field name="toggle_cursor_child"> <callback name="toggle_cursor_child"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </parameter> </parameters> </callback> </field> <field name="move_cursor"> <callback name="move_cursor"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="FlowBox" c:type="GtkFlowBox*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="select_all"> <callback name="select_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </parameter> </parameters> </callback> </field> <field name="unselect_all"> <callback name="unselect_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="FlowBoxCreateWidgetFunc" c:type="GtkFlowBoxCreateWidgetFunc" version="3.18"> <doc xml:space="preserve">Called for flow boxes that are bound to a #GListModel with gtk_flow_box_bind_model() for each item that gets added to the model.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GtkWidget that represents @item</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">the item from the model for which to create a widget for</doc> <type name="GObject.Object" c:type="gpointer"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data from gtk_flow_box_bind_model()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="FlowBoxFilterFunc" c:type="GtkFlowBoxFilterFunc" version="3.12"> <doc xml:space="preserve">A function that will be called whenrever a child changes or is added. It lets you control if the child should be visible or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row should be visible, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBoxChild that may be filtered</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="FlowBoxForeachFunc" c:type="GtkFlowBoxForeachFunc" version="3.12"> <doc xml:space="preserve">A function used by gtk_flow_box_selected_foreach(). It will be called on every selected child of the @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBox</doc> <type name="FlowBox" c:type="GtkFlowBox*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFlowBoxChild</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="FlowBoxSortFunc" c:type="GtkFlowBoxSortFunc" version="3.12"> <doc xml:space="preserve">A function to compare two children to determine which should come first.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">< 0 if @child1 should be before @child2, 0 if the are equal, and > 0 otherwise</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="child1" transfer-ownership="none"> <doc xml:space="preserve">the first child</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> <parameter name="child2" transfer-ownership="none"> <doc xml:space="preserve">the second child</doc> <type name="FlowBoxChild" c:type="GtkFlowBoxChild*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="FontButton" c:symbol-prefix="font_button" c:type="GtkFontButton" parent="Button" glib:type-name="GtkFontButton" glib:get-type="gtk_font_button_get_type" glib:type-struct="FontButtonClass"> <doc xml:space="preserve">The #GtkFontButton is a button which displays the currently selected font an allows to open a font chooser dialog to change the font. It is suitable widget for selecting a font in a preference dialog. # CSS nodes GtkFontButton has a single CSS node with name button and style class .font.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <implements name="FontChooser"/> <constructor name="new" c:identifier="gtk_font_button_new" version="2.4"> <doc xml:space="preserve">Creates a new font picker widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new font picker widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_font" c:identifier="gtk_font_button_new_with_font" version="2.4"> <doc xml:space="preserve">Creates a new font picker widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new font picker widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="fontname" transfer-ownership="none"> <doc xml:space="preserve">Name of font to display in font chooser dialog</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="font_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gfp" transfer-ownership="none"> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_font_name" c:identifier="gtk_font_button_get_font_name" version="2.4" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Retrieves the name of the currently selected font. This name includes style and size information as well. If you want to render something with the font, use this string with pango_font_description_from_string() . If youâre interested in peeking certain values (family name, style, size, weight) just query these properties from the #PangoFontDescription object.</doc> <doc-deprecated xml:space="preserve">Use gtk_font_chooser_get_font() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">an internal copy of the font name which must not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> </parameters> </method> <method name="get_show_size" c:identifier="gtk_font_button_get_show_size" version="2.4"> <doc xml:space="preserve">Returns whether the font size will be shown in the label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the font size will be shown in the label.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> </parameters> </method> <method name="get_show_style" c:identifier="gtk_font_button_get_show_style" version="2.4"> <doc xml:space="preserve">Returns whether the name of the font style will be shown in the label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the font style will be shown in the label.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_font_button_get_title" version="2.4"> <doc xml:space="preserve">Retrieves the title of the font chooser dialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">an internal copy of the title string which must not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> </parameters> </method> <method name="get_use_font" c:identifier="gtk_font_button_get_use_font" version="2.4"> <doc xml:space="preserve">Returns whether the selected font is used in the label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the selected font is used in the label.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> </parameters> </method> <method name="get_use_size" c:identifier="gtk_font_button_get_use_size" version="2.4"> <doc xml:space="preserve">Returns whether the selected size is used in the label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the selected size is used in the label.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> </parameters> </method> <method name="set_font_name" c:identifier="gtk_font_button_set_font_name" version="2.4" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Sets or updates the currently-displayed font in font picker dialog.</doc> <doc-deprecated xml:space="preserve">Use gtk_font_chooser_set_font() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> <parameter name="fontname" transfer-ownership="none"> <doc xml:space="preserve">Name of font to display in font chooser dialog</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_show_size" c:identifier="gtk_font_button_set_show_size" version="2.4"> <doc xml:space="preserve">If @show_size is %TRUE, the font size will be displayed along with the name of the selected font.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> <parameter name="show_size" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if font size should be displayed in dialog.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_style" c:identifier="gtk_font_button_set_show_style" version="2.4"> <doc xml:space="preserve">If @show_style is %TRUE, the font style will be displayed along with name of the selected font.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> <parameter name="show_style" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if font style should be displayed in label.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_font_button_set_title" version="2.4"> <doc xml:space="preserve">Sets the title for the font chooser dialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">a string containing the font chooser dialog title</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_use_font" c:identifier="gtk_font_button_set_use_font" version="2.4"> <doc xml:space="preserve">If @use_font is %TRUE, the font name will be written using the selected font.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> <parameter name="use_font" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, font name will be written using font chosen.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_use_size" c:identifier="gtk_font_button_set_use_size" version="2.4"> <doc xml:space="preserve">If @use_size is %TRUE, the font name will be written using the selected size.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="font_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontButton</doc> <type name="FontButton" c:type="GtkFontButton*"/> </instance-parameter> <parameter name="use_size" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, font name will be written using the selected size.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="font-name" version="2.4" deprecated="1" deprecated-version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The name of the currently selected font.</doc> <doc-deprecated xml:space="preserve">Use the #GtkFontChooser::font property instead</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="show-size" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If this property is set to %TRUE, the selected font size will be shown in the label. For a more WYSIWYG way to show the selected size, see the ::use-size property.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-style" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If this property is set to %TRUE, the name of the selected font style will be shown in the label. For a more WYSIWYG way to show the selected style, see the ::use-font property.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="title" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The title of the font chooser dialog.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="use-font" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If this property is set to %TRUE, the label will be drawn in the selected font.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="use-size" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If this property is set to %TRUE, the label will be drawn with the selected font size.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="button"> <type name="Button" c:type="GtkButton"/> </field> <field name="priv" readable="0" private="1"> <type name="FontButtonPrivate" c:type="GtkFontButtonPrivate*"/> </field> <glib:signal name="font-set" when="first" version="2.4"> <doc xml:space="preserve">The ::font-set signal is emitted when the user selects a font. When handling this signal, use gtk_font_button_get_font_name() 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="FontButtonClass" c:type="GtkFontButtonClass" glib:is-gtype-struct-for="FontButton"> <field name="parent_class"> <type name="ButtonClass" c:type="GtkButtonClass"/> </field> <field name="font_set"> <callback name="font_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="gfp" transfer-ownership="none"> <type name="FontButton" c:type="GtkFontButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FontButtonPrivate" c:type="GtkFontButtonPrivate" disguised="1"> </record> <interface name="FontChooser" c:symbol-prefix="font_chooser" c:type="GtkFontChooser" glib:type-name="GtkFontChooser" glib:get-type="gtk_font_chooser_get_type" glib:type-struct="FontChooserIface"> <doc xml:space="preserve">#GtkFontChooser is an interface that can be implemented by widgets displaying the list of fonts. In GTK+, the main objects that implement this interface are #GtkFontChooserWidget, #GtkFontChooserDialog and #GtkFontButton. The GtkFontChooser interface has been introducted in GTK+ 3.2.</doc> <virtual-method name="font_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="fontname" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_font_face" invoker="get_font_face" version="3.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #PangoFontFace representing the selected font group details, or %NULL. The returned object is owned by @fontchooser and must not be modified or freed.</doc> <type name="Pango.FontFace" c:type="PangoFontFace*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_font_family" invoker="get_font_family" version="3.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #PangoFontFamily representing the selected font family, or %NULL. The returned object is owned by @fontchooser and must not be modified or freed.</doc> <type name="Pango.FontFamily" c:type="PangoFontFamily*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_font_map" invoker="get_font_map" version="3.18"> <doc xml:space="preserve">Gets the custom font map of this font chooser widget, or %NULL if it does not have one.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #PangoFontMap, or %NULL</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_font_size" invoker="get_font_size" version="3.2"> <doc xml:space="preserve">The selected font size.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A n integer representing the selected font size, or -1 if no font size is selected.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="set_filter_func" invoker="set_filter_func" version="3.2"> <doc xml:space="preserve">Adds a filter function that decides which fonts to display in the font chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">a #GtkFontFilterFunc, or %NULL</doc> <type name="FontFilterFunc" c:type="GtkFontFilterFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">data to pass to @filter</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function to call to free @data when it is no longer needed</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_font_map" invoker="set_font_map" version="3.18"> <doc xml:space="preserve">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. |[<!-- language="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: |[ context = gtk_widget_get_pango_context (label); pango_context_set_font_map (context, fontmap); ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="fontmap" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #PangoFontMap</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </parameter> </parameters> </virtual-method> <method name="get_font" c:identifier="gtk_font_chooser_get_font" version="3.2"> <doc xml:space="preserve">Gets the currently-selected font name. Note that this can be a different string than what you set with gtk_font_chooser_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 pango_font_description_equal() if you want to compare two font descriptions.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A string with the name of the current font, or %NULL if no font is selected. You must free this string with g_free().</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </method> <method name="get_font_desc" c:identifier="gtk_font_chooser_get_font_desc" version="3.2"> <doc xml:space="preserve">Gets the currently-selected font. Note that this can be a different string than what you set with gtk_font_chooser_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 pango_font_description_equal() if you want to compare two font descriptions.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A #PangoFontDescription for the current font, or %NULL if no font is selected.</doc> <type name="Pango.FontDescription" c:type="PangoFontDescription*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </method> <method name="get_font_face" c:identifier="gtk_font_chooser_get_font_face" version="3.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #PangoFontFace representing the selected font group details, or %NULL. The returned object is owned by @fontchooser and must not be modified or freed.</doc> <type name="Pango.FontFace" c:type="PangoFontFace*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </method> <method name="get_font_family" c:identifier="gtk_font_chooser_get_font_family" version="3.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #PangoFontFamily representing the selected font family, or %NULL. The returned object is owned by @fontchooser and must not be modified or freed.</doc> <type name="Pango.FontFamily" c:type="PangoFontFamily*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </method> <method name="get_font_map" c:identifier="gtk_font_chooser_get_font_map" version="3.18"> <doc xml:space="preserve">Gets the custom font map of this font chooser widget, or %NULL if it does not have one.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #PangoFontMap, or %NULL</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </method> <method name="get_font_size" c:identifier="gtk_font_chooser_get_font_size" version="3.2"> <doc xml:space="preserve">The selected font size.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A n integer representing the selected font size, or -1 if no font size is selected.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </method> <method name="get_preview_text" c:identifier="gtk_font_chooser_get_preview_text" version="3.2"> <doc xml:space="preserve">Gets the text displayed in the preview area.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the text displayed in the preview area</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </method> <method name="get_show_preview_entry" c:identifier="gtk_font_chooser_get_show_preview_entry" version="3.2"> <doc xml:space="preserve">Returns whether the preview entry is shown or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the preview entry is shown or %FALSE if it is hidden.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> </parameters> </method> <method name="set_filter_func" c:identifier="gtk_font_chooser_set_filter_func" version="3.2"> <doc xml:space="preserve">Adds a filter function that decides which fonts to display in the font chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">a #GtkFontFilterFunc, or %NULL</doc> <type name="FontFilterFunc" c:type="GtkFontFilterFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to @filter</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function to call to free @data when it is no longer needed</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_font" c:identifier="gtk_font_chooser_set_font" version="3.2"> <doc xml:space="preserve">Sets the currently-selected font.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="fontname" transfer-ownership="none"> <doc xml:space="preserve">a font name like âHelvetica 12â or âTimes Bold 18â</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_font_desc" c:identifier="gtk_font_chooser_set_font_desc" version="3.2"> <doc xml:space="preserve">Sets the currently-selected font from @font_desc.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="font_desc" transfer-ownership="none"> <doc xml:space="preserve">a #PangoFontDescription</doc> <type name="Pango.FontDescription" c:type="const PangoFontDescription*"/> </parameter> </parameters> </method> <method name="set_font_map" c:identifier="gtk_font_chooser_set_font_map" version="3.18"> <doc xml:space="preserve">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. |[<!-- language="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: |[ context = gtk_widget_get_pango_context (label); pango_context_set_font_map (context, fontmap); ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="fontmap" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #PangoFontMap</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </parameter> </parameters> </method> <method name="set_preview_text" c:identifier="gtk_font_chooser_set_preview_text" version="3.2"> <doc xml:space="preserve">Sets the text displayed in the preview area. The @text is used to show how the selected font looks.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the text to display in the preview area</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_show_preview_entry" c:identifier="gtk_font_chooser_set_show_preview_entry" version="3.2"> <doc xml:space="preserve">Shows or hides the editable preview entry.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </instance-parameter> <parameter name="show_preview_entry" transfer-ownership="none"> <doc xml:space="preserve">whether to show the editable preview entry or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="font" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The font description as a string, e.g. "Sans Italic 12".</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="font-desc" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The font description as a #PangoFontDescription.</doc> <type name="Pango.FontDescription"/> </property> <property name="preview-text" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The string with which to preview the font.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="show-preview-entry" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to show an entry to change the preview text.</doc> <type name="gboolean" c:type="gboolean"/> </property> <glib:signal name="font-activated" when="first"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="fontname" transfer-ownership="none"> <doc xml:space="preserve">the font name</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> </interface> <class name="FontChooserDialog" c:symbol-prefix="font_chooser_dialog" c:type="GtkFontChooserDialog" parent="Dialog" glib:type-name="GtkFontChooserDialog" glib:get-type="gtk_font_chooser_dialog_get_type" glib:type-struct="FontChooserDialogClass"> <doc xml:space="preserve">The #GtkFontChooserDialog widget is a dialog for selecting a font. It implements the #GtkFontChooser interface. # GtkFontChooserDialog as GtkBuildable The GtkFontChooserDialog implementation of the #GtkBuildable interface exposes the buttons with the names âselect_buttonâ and âcancel_buttonâ.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="FontChooser"/> <constructor name="new" c:identifier="gtk_font_chooser_dialog_new" version="3.2"> <doc xml:space="preserve">Creates a new #GtkFontChooserDialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFontChooserDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Title of the dialog, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Transient parent of the dialog, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </constructor> <field name="parent_instance"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv" readable="0" private="1"> <type name="FontChooserDialogPrivate" c:type="GtkFontChooserDialogPrivate*"/> </field> </class> <record name="FontChooserDialogClass" c:type="GtkFontChooserDialogClass" glib:is-gtype-struct-for="FontChooserDialog"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FontChooserDialogPrivate" c:type="GtkFontChooserDialogPrivate" disguised="1"> </record> <record name="FontChooserIface" c:type="GtkFontChooserIface" glib:is-gtype-struct-for="FontChooser"> <field name="base_iface"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="get_font_family"> <callback name="get_font_family"> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #PangoFontFamily representing the selected font family, or %NULL. The returned object is owned by @fontchooser and must not be modified or freed.</doc> <type name="Pango.FontFamily" c:type="PangoFontFamily*"/> </return-value> <parameters> <parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </parameter> </parameters> </callback> </field> <field name="get_font_face"> <callback name="get_font_face"> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #PangoFontFace representing the selected font group details, or %NULL. The returned object is owned by @fontchooser and must not be modified or freed.</doc> <type name="Pango.FontFace" c:type="PangoFontFace*"/> </return-value> <parameters> <parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </parameter> </parameters> </callback> </field> <field name="get_font_size"> <callback name="get_font_size"> <return-value transfer-ownership="none"> <doc xml:space="preserve">A n integer representing the selected font size, or -1 if no font size is selected.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </parameter> </parameters> </callback> </field> <field name="set_filter_func"> <callback name="set_filter_func"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </parameter> <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">a #GtkFontFilterFunc, or %NULL</doc> <type name="FontFilterFunc" c:type="GtkFontFilterFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">data to pass to @filter</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function to call to free @data when it is no longer needed</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </callback> </field> <field name="font_activated"> <callback name="font_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <type name="FontChooser" c:type="GtkFontChooser*"/> </parameter> <parameter name="fontname" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="set_font_map"> <callback name="set_font_map"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </parameter> <parameter name="fontmap" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #PangoFontMap</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </parameter> </parameters> </callback> </field> <field name="get_font_map"> <callback name="get_font_map"> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #PangoFontMap, or %NULL</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </return-value> <parameters> <parameter name="fontchooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontChooser</doc> <type name="FontChooser" c:type="GtkFontChooser*"/> </parameter> </parameters> </callback> </field> <field name="padding"> <array zero-terminated="0" c:type="gpointer" fixed-size="10"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <class name="FontChooserWidget" c:symbol-prefix="font_chooser_widget" c:type="GtkFontChooserWidget" parent="Box" glib:type-name="GtkFontChooserWidget" glib:get-type="gtk_font_chooser_widget_get_type" glib:type-struct="FontChooserWidgetClass"> <doc xml:space="preserve">The #GtkFontChooserWidget widget lists the available fonts, styles and sizes, allowing the user to select a font. It is used in the #GtkFontChooserDialog widget to provide a dialog box for selecting fonts. To set the font which is initially selected, use gtk_font_chooser_set_font() or gtk_font_chooser_set_font_desc(). To get the selected font use gtk_font_chooser_get_font() or gtk_font_chooser_get_font_desc(). To change the text which is shown in the preview area, use gtk_font_chooser_set_preview_text(). # CSS nodes GtkFontChooserWidget has a single CSS node with name fontchooser.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="FontChooser"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_font_chooser_widget_new" version="3.2"> <doc xml:space="preserve">Creates a new #GtkFontChooserWidget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFontChooserWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="parent_instance"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="FontChooserWidgetPrivate" c:type="GtkFontChooserWidgetPrivate*"/> </field> </class> <record name="FontChooserWidgetClass" c:type="GtkFontChooserWidgetClass" glib:is-gtype-struct-for="FontChooserWidget"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FontChooserWidgetPrivate" c:type="GtkFontChooserWidgetPrivate" disguised="1"> </record> <callback name="FontFilterFunc" c:type="GtkFontFilterFunc"> <doc xml:space="preserve">The type of function that is used for deciding what fonts get shown in a #GtkFontChooser. See gtk_font_chooser_set_filter_func().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the font should be displayed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="family" transfer-ownership="none"> <doc xml:space="preserve">a #PangoFontFamily</doc> <type name="Pango.FontFamily" c:type="const PangoFontFamily*"/> </parameter> <parameter name="face" transfer-ownership="none"> <doc xml:space="preserve">a #PangoFontFace belonging to @family</doc> <type name="Pango.FontFace" c:type="const PangoFontFace*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data passed to gtk_font_chooser_set_filter_func()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="FontSelection" c:symbol-prefix="font_selection" c:type="GtkFontSelection" parent="Box" glib:type-name="GtkFontSelection" glib:get-type="gtk_font_selection_get_type" glib:type-struct="FontSelectionClass"> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_font_selection_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new #GtkFontSelection.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserWidget instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFontSelection</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_face" c:identifier="gtk_font_selection_get_face" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the #PangoFontFace representing the selected font group details (i.e. family, slant, weight, width, etc).</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #PangoFontFace representing the selected font group details. The returned object is owned by @fontsel and must not be modified or freed.</doc> <type name="Pango.FontFace" c:type="PangoFontFace*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_face_list" c:identifier="gtk_font_selection_get_face_list" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">This returns the #GtkTreeView which lists all styles available for the selected font. For example, âRegularâ, âBoldâ, etc.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidget that is part of @fontsel</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_family" c:identifier="gtk_font_selection_get_family" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the #PangoFontFamily representing the selected font family.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #PangoFontFamily representing the selected font family. Font families are a collection of font faces. The returned object is owned by @fontsel and must not be modified or freed.</doc> <type name="Pango.FontFamily" c:type="PangoFontFamily*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_family_list" c:identifier="gtk_font_selection_get_family_list" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">This returns the #GtkTreeView that lists font families, for example, âSansâ, âSerifâ, etc.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidget that is part of @fontsel</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_font_name" c:identifier="gtk_font_selection_get_font_name" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the currently-selected font name. Note that this can be a different string than what you set with gtk_font_selection_set_font_name(), as the font selection 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 pango_font_description_equal() if you want to compare two font descriptions.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A string with the name of the current font, or %NULL if no font is selected. You must free this string with g_free().</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_preview_entry" c:identifier="gtk_font_selection_get_preview_entry" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">This returns the #GtkEntry used to display the font as a preview.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidget that is part of @fontsel</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_preview_text" c:identifier="gtk_font_selection_get_preview_text" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the text displayed in the preview area.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the text displayed in the preview area. This string is owned by the widget and should not be modified or freed</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_size" c:identifier="gtk_font_selection_get_size" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">The selected font size.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A n integer representing the selected font size, or -1 if no font size is selected.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_size_entry" c:identifier="gtk_font_selection_get_size_entry" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">This returns the #GtkEntry used to allow the user to edit the font number manually instead of selecting it from the list of font sizes.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidget that is part of @fontsel</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="get_size_list" c:identifier="gtk_font_selection_get_size_list" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">This returns the #GtkTreeView used to list font sizes.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidget that is part of @fontsel</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> </parameters> </method> <method name="set_font_name" c:identifier="gtk_font_selection_set_font_name" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Sets the currently-selected font. Note that the @fontsel needs to know the screen in which it will appear for this to work; this can be guaranteed by simply making sure that the @fontsel is inserted in a toplevel window before you call this function.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the font could be set successfully; %FALSE if no such font exists or if the @fontsel doesnât belong to a particular screen yet.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> <parameter name="fontname" transfer-ownership="none"> <doc xml:space="preserve">a font name like âHelvetica 12â or âTimes Bold 18â</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_preview_text" c:identifier="gtk_font_selection_set_preview_text" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Sets the text displayed in the preview area. The @text is used to show how the selected font looks.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooser</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fontsel" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelection</doc> <type name="FontSelection" c:type="GtkFontSelection*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the text to display in the preview area</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="font-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="preview-text" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_instance"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="FontSelectionPrivate" c:type="GtkFontSelectionPrivate*"/> </field> </class> <record name="FontSelectionClass" c:type="GtkFontSelectionClass" glib:is-gtype-struct-for="FontSelection"> <field name="parent_class"> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="FontSelectionDialog" c:symbol-prefix="font_selection_dialog" c:type="GtkFontSelectionDialog" parent="Dialog" glib:type-name="GtkFontSelectionDialog" glib:get-type="gtk_font_selection_dialog_get_type" glib:type-struct="FontSelectionDialogClass"> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_font_selection_dialog_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new #GtkFontSelectionDialog.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserDialog</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFontSelectionDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">the title of the dialog window</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_cancel_button" c:identifier="gtk_font_selection_dialog_get_cancel_button" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the âCancelâ button.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserDialog</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget used in the dialog for the âCancelâ button.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="fsd" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelectionDialog</doc> <type name="FontSelectionDialog" c:type="GtkFontSelectionDialog*"/> </instance-parameter> </parameters> </method> <method name="get_font_name" c:identifier="gtk_font_selection_dialog_get_font_name" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the currently-selected font name. Note that this can be a different string than what you set with gtk_font_selection_dialog_set_font_name(), as the font selection 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 pango_font_description_equal() if you want to compare two font descriptions.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserDialog</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A string with the name of the current font, or %NULL if no font is selected. You must free this string with g_free().</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="fsd" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelectionDialog</doc> <type name="FontSelectionDialog" c:type="GtkFontSelectionDialog*"/> </instance-parameter> </parameters> </method> <method name="get_font_selection" c:identifier="gtk_font_selection_dialog_get_font_selection" version="2.22" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Retrieves the #GtkFontSelection widget embedded in the dialog.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserDialog</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the embedded #GtkFontSelection</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="fsd" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelectionDialog</doc> <type name="FontSelectionDialog" c:type="GtkFontSelectionDialog*"/> </instance-parameter> </parameters> </method> <method name="get_ok_button" c:identifier="gtk_font_selection_dialog_get_ok_button" version="2.14" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the âOKâ button.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserDialog</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget used in the dialog for the âOKâ button.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="fsd" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelectionDialog</doc> <type name="FontSelectionDialog" c:type="GtkFontSelectionDialog*"/> </instance-parameter> </parameters> </method> <method name="get_preview_text" c:identifier="gtk_font_selection_dialog_get_preview_text" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets the text displayed in the preview area.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserDialog</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the text displayed in the preview area. This string is owned by the widget and should not be modified or freed</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="fsd" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelectionDialog</doc> <type name="FontSelectionDialog" c:type="GtkFontSelectionDialog*"/> </instance-parameter> </parameters> </method> <method name="set_font_name" c:identifier="gtk_font_selection_dialog_set_font_name" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Sets the currently selected font.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserDialog</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the font selected in @fsd is now the @fontname specified, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="fsd" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelectionDialog</doc> <type name="FontSelectionDialog" c:type="GtkFontSelectionDialog*"/> </instance-parameter> <parameter name="fontname" transfer-ownership="none"> <doc xml:space="preserve">a font name like âHelvetica 12â or âTimes Bold 18â</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_preview_text" c:identifier="gtk_font_selection_dialog_set_preview_text" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Sets the text displayed in the preview area.</doc> <doc-deprecated xml:space="preserve">Use #GtkFontChooserDialog</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="fsd" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFontSelectionDialog</doc> <type name="FontSelectionDialog" c:type="GtkFontSelectionDialog*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the text to display in the preview area</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <field name="parent_instance"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv" readable="0" private="1"> <type name="FontSelectionDialogPrivate" c:type="GtkFontSelectionDialogPrivate*"/> </field> </class> <record name="FontSelectionDialogClass" c:type="GtkFontSelectionDialogClass" glib:is-gtype-struct-for="FontSelectionDialog"> <field name="parent_class"> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FontSelectionDialogPrivate" c:type="GtkFontSelectionDialogPrivate" disguised="1"> </record> <record name="FontSelectionPrivate" c:type="GtkFontSelectionPrivate" disguised="1"> </record> <class name="Frame" c:symbol-prefix="frame" c:type="GtkFrame" parent="Bin" glib:type-name="GtkFrame" glib:get-type="gtk_frame_get_type" glib:type-struct="FrameClass"> <doc xml:space="preserve">The frame widget is a bin that surrounds its child with a decorative frame and an optional label. If present, the label is drawn in a gap in the top side of the frame. The position of the label can be controlled with gtk_frame_set_label_align(). # GtkFrame as GtkBuildable The GtkFrame implementation of the GtkBuildable interface supports placing a child in the label position by specifying âlabelâ as the âtypeâ attribute of a <child> element. A normal content child can be specified without specifying a <child> type attribute. An example of a UI definition fragment with GtkFrame: |[ <object class="GtkFrame"> <child type="label"> <object class="GtkLabel" id="frame-label"/> </child> <child> <object class="GtkEntry" id="frame-content"/> </child> </object> ]| # CSS nodes |[<!-- language="plain" --> frame âââ border[.flat] âââ <label widget> â°ââ <child> ]| GtkFrame has a main CSS node named âframeâ and a subnode named âborderâ. The âborderâ node is used to draw the visible border. You can set the appearance of the border using CSS properties like âborder-styleâ on the âborderâ node. The border node can be given the style class â.flatâ, which is used by themes to disable drawing of the border. To do this from code, call gtk_frame_set_shadow_type() with %GTK_SHADOW_NONE to add the â.flatâ class or any other shadow type to remove it.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_frame_new"> <doc xml:space="preserve">Creates a new #GtkFrame, with optional label @label. If @label is %NULL, the label is omitted.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkFrame widget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the text to use as the label of the frame</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="compute_child_allocation"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> <parameter name="allocation" transfer-ownership="none"> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </virtual-method> <method name="get_label" c:identifier="gtk_frame_get_label"> <doc xml:space="preserve">If the frameâs label widget is a #GtkLabel, returns the text in the label widget. (The frame will have a #GtkLabel for the label widget if a non-%NULL argument was passed to gtk_frame_new().)</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the text in the label, or %NULL if there was no label widget or the lable widget was not a #GtkLabel. This string is owned by GTK+ and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFrame</doc> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> </parameters> </method> <method name="get_label_align" c:identifier="gtk_frame_get_label_align"> <doc xml:space="preserve">Retrieves the X and Y alignment of the frameâs label. See gtk_frame_set_label_align().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFrame</doc> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> <parameter name="xalign" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X alignment of frameâs label, or %NULL</doc> <type name="gfloat" c:type="gfloat*"/> </parameter> <parameter name="yalign" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X alignment of frameâs label, or %NULL</doc> <type name="gfloat" c:type="gfloat*"/> </parameter> </parameters> </method> <method name="get_label_widget" c:identifier="gtk_frame_get_label_widget"> <doc xml:space="preserve">Retrieves the label widget for the frame. See gtk_frame_set_label_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the label widget, or %NULL if there is none.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFrame</doc> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> </parameters> </method> <method name="get_shadow_type" c:identifier="gtk_frame_get_shadow_type"> <doc xml:space="preserve">Retrieves the shadow type of the frame. See gtk_frame_set_shadow_type().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current shadow type of the frame.</doc> <type name="ShadowType" c:type="GtkShadowType"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFrame</doc> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_frame_set_label"> <doc xml:space="preserve">Removes the current #GtkFrame:label-widget. If @label is not %NULL, creates a new #GtkLabel with that text and adds it as the #GtkFrame:label-widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFrame</doc> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the text to use as the label of the frame</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_label_align" c:identifier="gtk_frame_set_label_align"> <doc xml:space="preserve">Sets the alignment of the frame widgetâs label. The default values for a newly created frame are 0.0 and 0.5.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFrame</doc> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">The y alignment of the label. A value of 0.0 aligns under the frame; 1.0 aligns above the frame. If the values are exactly 0.0 or 1.0 the gap in the frame wonât be painted because the label will be completely above or below the frame.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="set_label_widget" c:identifier="gtk_frame_set_label_widget"> <doc xml:space="preserve">Sets the #GtkFrame:label-widget for the frame. This is the widget that will appear embedded in the top edge of the frame as a title.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFrame</doc> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> <parameter name="label_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the new label widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_shadow_type" c:identifier="gtk_frame_set_shadow_type"> <doc xml:space="preserve">Sets the #GtkFrame:shadow-type for @frame, i.e. whether it is drawn without (%GTK_SHADOW_NONE) or with (other values) a visible border. Values other than %GTK_SHADOW_NONE are treated identically by GtkFrame. The chosen type is applied by removing or adding the .flat class to the CSS node named border.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="frame" transfer-ownership="none"> <doc xml:space="preserve">a #GtkFrame</doc> <type name="Frame" c:type="GtkFrame*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkShadowType</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> </parameters> </method> <property name="label" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="label-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="label-xalign" writable="1" transfer-ownership="none"> <type name="gfloat" c:type="gfloat"/> </property> <property name="label-yalign" writable="1" transfer-ownership="none"> <type name="gfloat" c:type="gfloat"/> </property> <property name="shadow-type" writable="1" transfer-ownership="none"> <type name="ShadowType"/> </property> <field name="bin"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="FramePrivate" c:type="GtkFramePrivate*"/> </field> </class> <class name="FrameAccessible" c:symbol-prefix="frame_accessible" c:type="GtkFrameAccessible" parent="ContainerAccessible" glib:type-name="GtkFrameAccessible" glib:get-type="gtk_frame_accessible_get_type" glib:type-struct="FrameAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="FrameAccessiblePrivate" c:type="GtkFrameAccessiblePrivate*"/> </field> </class> <record name="FrameAccessibleClass" c:type="GtkFrameAccessibleClass" glib:is-gtype-struct-for="FrameAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="FrameAccessiblePrivate" c:type="GtkFrameAccessiblePrivate" disguised="1"> </record> <record name="FrameClass" c:type="GtkFrameClass" glib:is-gtype-struct-for="Frame"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="compute_child_allocation"> <callback name="compute_child_allocation"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="frame" transfer-ownership="none"> <type name="Frame" c:type="GtkFrame*"/> </parameter> <parameter name="allocation" transfer-ownership="none"> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="FramePrivate" c:type="GtkFramePrivate" disguised="1"> </record> <class name="GLArea" c:symbol-prefix="gl_area" c:type="GtkGLArea" version="3.16" parent="Widget" glib:type-name="GtkGLArea" glib:get-type="gtk_gl_area_get_type" glib:type-struct="GLAreaClass"> <doc xml:space="preserve">#GtkGLArea is a widget that allows drawing with OpenGL. #GtkGLArea sets up its own #GdkGLContext for the window it creates, and creates a custom GL framebuffer that the widget will do GL rendering onto. It also ensures that this framebuffer is the default GL rendering target when rendering. In order to draw, you have to connect to the #GtkGLArea::render signal, or subclass #GtkGLArea and override the @GtkGLAreaClass.render() virtual function. The #GtkGLArea widget ensures that the #GdkGLContext is associated with the widget's drawing area, and it is kept updated when the size and position of the drawing area changes. ## Drawing with GtkGLArea ## The simplest way to draw using OpenGL commands in a #GtkGLArea is to create a widget instance and connect to the #GtkGLArea::render signal: |[<!-- language="C" --> // create a GtkGLArea instance GtkWidget *gl_area = gtk_gl_area_new (); // connect to the "render" signal g_signal_connect (gl_area, "render", G_CALLBACK (render), NULL); ]| The `render()` function will be called when the #GtkGLArea is ready for you to draw its content: |[<!-- language="C" --> static gboolean render (GtkGLArea *area, GdkGLContext *context) { // inside this function it's safe to use GL; the given // #GdkGLContext has been made current to the drawable // surface used by the #GtkGLArea and the viewport has // already been set to be the size of the allocation // we can start by clearing the buffer glClearColor (0, 0, 0, 0); glClear (GL_COLOR_BUFFER_BIT); // draw your object draw_an_object (); // we completed our drawing; the draw commands will be // flushed at the end of the signal emission chain, and // the buffers will be drawn on the window return TRUE; } ]| If you need to initialize OpenGL state, e.g. buffer objects or shaders, you should use the #GtkWidget::realize signal; you can use the #GtkWidget::unrealize signal to clean up. Since the #GdkGLContext creation and initialization may fail, you will need to check for errors, using gtk_gl_area_get_error(). An example of how to safely initialize the GL state is: |[<!-- language="C" --> static void on_realize (GtkGLarea *area) { // We need to make the context current if we want to // call GL API gtk_gl_area_make_current (area); // If there were errors during the initialization or // when trying to make the context current, this // function will return a #GError for you to catch if (gtk_gl_area_get_error (area) != NULL) return; // You can also use gtk_gl_area_set_error() in order // to show eventual initialization errors on the // GtkGLArea widget itself GError *internal_error = NULL; init_buffer_objects (&error); if (error != NULL) { gtk_gl_area_set_error (area, error); g_error_free (error); return; } init_shaders (&error); if (error != NULL) { gtk_gl_area_set_error (area, error); g_error_free (error); return; } } ]| If you need to change the options for creating the #GdkGLContext you should use the #GtkGLArea::create-context signal.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_gl_area_new" version="3.16"> <doc xml:space="preserve">Creates a new #GtkGLArea widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkGLArea</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="create_context" introspectable="0"> <return-value> <type name="Gdk.GLContext" c:type="GdkGLContext*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="render"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.GLContext" c:type="GdkGLContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="resize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="int"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="int"/> </parameter> </parameters> </virtual-method> <method name="attach_buffers" c:identifier="gtk_gl_area_attach_buffers" version="3.16"> <doc xml:space="preserve">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 frambuffer. This function is automatically called before emitting the #GtkGLArea::render signal, and doesn't normally need to be called by application code.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="get_auto_render" c:identifier="gtk_gl_area_get_auto_render" version="3.16"> <doc xml:space="preserve">Returns whether the area is in auto render mode or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the @area is auto rendering, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="get_context" c:identifier="gtk_gl_area_get_context" version="3.16"> <doc xml:space="preserve">Retrieves the #GdkGLContext used by @area.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkGLContext</doc> <type name="Gdk.GLContext" c:type="GdkGLContext*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="get_error" c:identifier="gtk_gl_area_get_error" version="3.16"> <doc xml:space="preserve">Gets the current error set on the @area.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #GError or %NULL</doc> <type name="GLib.Error" c:type="GError*"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="get_has_alpha" c:identifier="gtk_gl_area_get_has_alpha" version="3.16"> <doc xml:space="preserve">Returns whether the area has an alpha component.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the @area has an alpha component, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="get_has_depth_buffer" c:identifier="gtk_gl_area_get_has_depth_buffer" version="3.16"> <doc xml:space="preserve">Returns whether the area has a depth buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the @area has a depth buffer, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="get_has_stencil_buffer" c:identifier="gtk_gl_area_get_has_stencil_buffer" version="3.16"> <doc xml:space="preserve">Returns whether the area has a stencil buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the @area has a stencil buffer, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="get_required_version" c:identifier="gtk_gl_area_get_required_version" version="3.16"> <doc xml:space="preserve">Retrieves the required version of OpenGL set using gtk_gl_area_set_required_version().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the required major version</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the required minor version</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_use_es" c:identifier="gtk_gl_area_get_use_es" version="3.22"> <doc xml:space="preserve">Retrieves the value set by gtk_gl_area_set_use_es().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the #GtkGLArea should create an OpenGL ES context and %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="make_current" c:identifier="gtk_gl_area_make_current" version="3.16"> <doc xml:space="preserve">Ensures that the #GdkGLContext used by @area is associated with the #GtkGLArea. This function is automatically called before emitting the #GtkGLArea::render signal, and doesn't normally need to be called by application code.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="queue_render" c:identifier="gtk_gl_area_queue_render" version="3.16"> <doc xml:space="preserve">Marks the currently rendered data (if any) as invalid, and queues a redraw of the widget, ensuring that the #GtkGLArea::render signal is emitted during the draw. This is only needed when the gtk_gl_area_set_auto_render() has been called with a %FALSE value. The default behaviour is to emit #GtkGLArea::render on each draw.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> </parameters> </method> <method name="set_auto_render" c:identifier="gtk_gl_area_set_auto_render" version="3.16"> <doc xml:space="preserve">If @auto_render is %TRUE the #GtkGLArea::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 gtk_gl_area_queue_render() must be called. This mode is useful when the scene changes seldomly, but takes a long time to redraw.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="auto_render" transfer-ownership="none"> <doc xml:space="preserve">a boolean</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_error" c:identifier="gtk_gl_area_set_error" version="3.16"> <doc xml:space="preserve">Sets an error on the area which will be shown instead of the GL rendering. This is useful in the #GtkGLArea::create-context signal if GL context creation fails.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="error" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a new #GError, or %NULL to unset the error</doc> <type name="GLib.Error" c:type="const GError*"/> </parameter> </parameters> </method> <method name="set_has_alpha" c:identifier="gtk_gl_area_set_has_alpha" version="3.16"> <doc xml:space="preserve">If @has_alpha is %TRUE the buffer allocated by the widget will have an alpha channel component, and when rendering to the window the result will be composited over whatever is below the widget. If @has_alpha is %FALSE there will be no alpha channel, and the buffer will fully replace anything below the widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="has_alpha" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to add an alpha component</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_has_depth_buffer" c:identifier="gtk_gl_area_set_has_depth_buffer" version="3.16"> <doc xml:space="preserve">If @has_depth_buffer is %TRUE the widget will allocate and enable a depth buffer for the target framebuffer. Otherwise there will be none.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="has_depth_buffer" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to add a depth buffer</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_has_stencil_buffer" c:identifier="gtk_gl_area_set_has_stencil_buffer" version="3.16"> <doc xml:space="preserve">If @has_stencil_buffer is %TRUE the widget will allocate and enable a stencil buffer for the target framebuffer. Otherwise there will be none.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="has_stencil_buffer" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to add a stencil buffer</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_required_version" c:identifier="gtk_gl_area_set_required_version" version="3.16"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="major" transfer-ownership="none"> <doc xml:space="preserve">the major version</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minor" transfer-ownership="none"> <doc xml:space="preserve">the minor version</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_use_es" c:identifier="gtk_gl_area_set_use_es" version="3.22"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGLArea</doc> <type name="GLArea" c:type="GtkGLArea*"/> </instance-parameter> <parameter name="use_es" transfer-ownership="none"> <doc xml:space="preserve">whether to use OpenGL or OpenGL ES</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="auto-render" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If set to %TRUE the #GtkGLArea::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 gtk_gl_area_queue_render() must be called. This mode is useful when the scene changes seldomly, but takes a long time to redraw.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="context" version="3.16" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="Gdk.GLContext"/> </property> <property name="has-alpha" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If set to %TRUE the buffer allocated by the widget will have an alpha channel component, and when rendering to the window the result will be composited over whatever is below the widget. If set to %FALSE there will be no alpha channel, and the buffer will fully replace anything below the widget.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-depth-buffer" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If set to %TRUE the widget will allocate and enable a depth buffer for the target framebuffer.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-stencil-buffer" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If set to %TRUE the widget will allocate and enable a stencil buffer for the target framebuffer.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="use-es" version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If set to %TRUE the widget will try to create a #GdkGLContext using OpenGL ES instead of OpenGL. See also: gdk_gl_context_set_use_es()</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="Widget" c:type="GtkWidget"/> </field> <glib:signal name="create-context" when="last" version="3.16"> <doc xml:space="preserve">The ::create-context signal is emitted when the widget is being realized, and 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 gtk_gl_area_set_error() to register a more detailed error of how the construction failed.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GdkGLContext; the #GtkGLArea widget will take ownership of the returned value.</doc> <type name="Gdk.GLContext"/> </return-value> </glib:signal> <glib:signal name="render" when="last" version="3.16"> <doc xml:space="preserve">The ::render signal is 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GdkGLContext used by @area</doc> <type name="Gdk.GLContext"/> </parameter> </parameters> </glib:signal> <glib:signal name="resize" when="last" version="3.16"> <doc xml:space="preserve">The ::resize signal is 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the viewport</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the viewport</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> </class> <record name="GLAreaClass" c:type="GtkGLAreaClass" glib:is-gtype-struct-for="GLArea" version="3.16"> <doc xml:space="preserve">The `GtkGLAreaClass` structure contains only private data.</doc> <field name="parent_class" readable="0" private="1"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="render"> <callback name="render"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <type name="GLArea" c:type="GtkGLArea*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.GLContext" c:type="GdkGLContext*"/> </parameter> </parameters> </callback> </field> <field name="resize"> <callback name="resize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <type name="GLArea" c:type="GtkGLArea*"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="int"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="int"/> </parameter> </parameters> </callback> </field> <field name="create_context" introspectable="0"> <callback name="create_context" introspectable="0"> <return-value> <type name="Gdk.GLContext" c:type="GdkGLContext*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <type name="GLArea" c:type="GtkGLArea*"/> </parameter> </parameters> </callback> </field> <field name="_padding" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="6"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <class name="Gesture" c:symbol-prefix="gesture" c:type="GtkGesture" parent="EventController" abstract="1" glib:type-name="GtkGesture" glib:get-type="gtk_gesture_get_type" glib:type-struct="GestureClass"> <doc xml:space="preserve">#GtkGesture is the base object for gesture recognition, although this object is quite generalized to serve as a base for multi-touch gestures, it is suitable to implement single-touch and pointer-based gestures (using the special %NULL #GdkEventSequence value for these). The number of touches that a #GtkGesture need to be recognized is controlled by the #GtkGesture:n-points property, if a gesture is keeping track of less or more than that number of sequences, it won't check wether the gesture is recognized. As soon as the gesture has the expected number of touches, the gesture will run the #GtkGesture::check signal regularly on input events until the gesture is recognized, the criteria to consider a gesture as "recognized" is left to #GtkGesture subclasses. A recognized gesture will then emit the following signals: - #GtkGesture::begin when the gesture is recognized. - A number of #GtkGesture::update, whenever an input event is processed. - #GtkGesture::end when the gesture is no longer recognized. ## Event propagation In order to receive events, a gesture needs to either set a propagation phase through gtk_event_controller_set_propagation_phase(), or feed those manually through gtk_event_controller_handle_event(). In the capture phase, events are propagated from the toplevel down to the target widget, and gestures that are attached to containers above the widget get a chance to interact with the event before it reaches the target. After the capture phase, GTK+ emits the traditional #GtkWidget::button-press-event, #GtkWidget::button-release-event, #GtkWidget::touch-event, etc signals. Gestures with the %GTK_PHASE_TARGET phase are fed events from the default #GtkWidget::event handlers. In the bubble phase, events are propagated up from the target widget to the toplevel, and gestures that are attached to containers above the widget get a chance to interact with events that have not been handled yet. ## States of a sequence # {#touch-sequence-states} Whenever input interaction happens, a single event may trigger a cascade of #GtkGestures, both across the parents of the widget receiving the event and in parallel within an individual widget. It is a responsibility of the widgets using those gestures to set the state of touch sequences accordingly in order to enable cooperation of gestures around the #GdkEventSequences triggering those. Within a widget, gestures can be grouped through gtk_gesture_group(), grouped gestures synchronize the state of sequences, so calling gtk_gesture_set_sequence_state() on one will effectively propagate the state throughout the group. By default, all sequences start out in the #GTK_EVENT_SEQUENCE_NONE state, sequences in this state trigger the gesture event handler, but event propagation will continue unstopped by gestures. If a sequence enters into the #GTK_EVENT_SEQUENCE_DENIED state, the gesture group will effectively ignore the sequence, letting events go unstopped through the gesture, but the "slot" will still remain occupied while the touch is active. If a sequence enters in the #GTK_EVENT_SEQUENCE_CLAIMED state, the gesture group will grab all interaction on the sequence, by: - Setting the same sequence to #GTK_EVENT_SEQUENCE_DENIED on every other gesture group within the widget, and every gesture on parent widgets in the propagation chain. - calling #GtkGesture::cancel on every gesture in widgets underneath in the propagation chain. - Stopping event propagation after the gesture group handles the event. Note: if a sequence is set early to #GTK_EVENT_SEQUENCE_CLAIMED on #GDK_TOUCH_BEGIN/#GDK_BUTTON_PRESS (so those events are captured before reaching the event widget, this implies #GTK_PHASE_CAPTURE), one similar event will emulated if the sequence changes to #GTK_EVENT_SEQUENCE_DENIED. This way event coherence is preserved before event propagation is unstopped again. Sequence states can't be changed freely, see gtk_gesture_set_sequence_state() to know about the possible lifetimes of a #GdkEventSequence. ## Touchpad gestures On the platforms that support it, #GtkGesture will handle transparently touchpad gesture events. The only precautions users of #GtkGesture should do to enable this support are: - Enabling %GDK_TOUCHPAD_GESTURE_MASK on their #GdkWindows - If the gesture has %GTK_PHASE_NONE, ensuring events of type %GDK_TOUCHPAD_SWIPE and %GDK_TOUCHPAD_PINCH are handled by the #GtkGesture</doc> <method name="get_bounding_box" c:identifier="gtk_gesture_get_bounding_box" version="3.14"> <doc xml:space="preserve">If there are touch sequences being currently handled by @gesture, this function 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there are active touches, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">bounding box containing all active touches.</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_bounding_box_center" c:identifier="gtk_gesture_get_bounding_box_center" version="3.14"> <doc xml:space="preserve">If there are touch sequences being currently handled by @gesture, this function returns %TRUE and fills in @x and @y with the center of the bounding box containing all active touches. Otherwise, %FALSE will be returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE if no active touches are present, %TRUE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">X coordinate for the bounding box center</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Y coordinate for the bounding box center</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="get_device" c:identifier="gtk_gesture_get_device" version="3.14"> <doc xml:space="preserve">Returns the master #GdkDevice that is currently operating on @gesture, or %NULL if the gesture is not being interacted.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GdkDevice, or %NULL</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> </parameters> </method> <method name="get_group" c:identifier="gtk_gesture_get_group" version="3.14"> <doc xml:space="preserve">Returns all gestures in the group of @gesture</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">The list of #GtkGestures, free with g_list_free()</doc> <type name="GLib.List" c:type="GList*"> <type name="Gesture"/> </type> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> </parameters> </method> <method name="get_last_event" c:identifier="gtk_gesture_get_last_event"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The last event from @sequence</doc> <type name="Gdk.Event" c:type="const GdkEvent*"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="sequence" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEventSequence</doc> <type name="Gdk.EventSequence" c:type="GdkEventSequence*"/> </parameter> </parameters> </method> <method name="get_last_updated_sequence" c:identifier="gtk_gesture_get_last_updated_sequence" version="3.14"> <doc xml:space="preserve">Returns the #GdkEventSequence that was last updated on @gesture.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The last updated sequence</doc> <type name="Gdk.EventSequence" c:type="GdkEventSequence*"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> </parameters> </method> <method name="get_point" c:identifier="gtk_gesture_get_point" version="3.14"> <doc xml:space="preserve">If @sequence is currently being interpreted by @gesture, this function 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @sequence is currently interpreted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="sequence" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkEventSequence, or %NULL for pointer events</doc> <type name="Gdk.EventSequence" c:type="GdkEventSequence*"/> </parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for X axis of the sequence coordinates</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for Y axis of the sequence coordinates</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="get_sequence_state" c:identifier="gtk_gesture_get_sequence_state" version="3.14"> <doc xml:space="preserve">Returns the @sequence state, as seen by @gesture.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The sequence state in @gesture</doc> <type name="EventSequenceState" c:type="GtkEventSequenceState"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="sequence" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEventSequence</doc> <type name="Gdk.EventSequence" c:type="GdkEventSequence*"/> </parameter> </parameters> </method> <method name="get_sequences" c:identifier="gtk_gesture_get_sequences" version="3.14"> <doc xml:space="preserve">Returns the list of #GdkEventSequences currently being interpreted by @gesture.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">A list of #GdkEventSequences, the list elements are owned by GTK+ and must not be freed or modified, the list itself must be deleted through g_list_free()</doc> <type name="GLib.List" c:type="GList*"> <type name="Gdk.EventSequence"/> </type> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> </parameters> </method> <method name="get_window" c:identifier="gtk_gesture_get_window" version="3.14"> <doc xml:space="preserve">Returns the user-defined window that receives the events handled by @gesture. See gtk_gesture_set_window() for more information.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the user defined window, or %NULL if none</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> </parameters> </method> <method name="group" c:identifier="gtk_gesture_group" version="3.14"> <doc xml:space="preserve">Adds @gesture to the same group than @group_gesture. Gestures are by default isolated in their own groups. When gestures are grouped, the state of #GdkEventSequences is kept in sync for all of those, so calling gtk_gesture_set_sequence_state(), on one will transfer the same value to the others. Groups also perform an "implicit grabbing" 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="group_gesture" transfer-ownership="none"> <doc xml:space="preserve">#GtkGesture to group @gesture with</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </parameter> </parameters> </method> <method name="handles_sequence" c:identifier="gtk_gesture_handles_sequence" version="3.14"> <doc xml:space="preserve">Returns %TRUE if @gesture is currently handling events corresponding to @sequence.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gesture is handling @sequence, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="sequence" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkEventSequence or %NULL</doc> <type name="Gdk.EventSequence" c:type="GdkEventSequence*"/> </parameter> </parameters> </method> <method name="is_active" c:identifier="gtk_gesture_is_active" version="3.14"> <doc xml:space="preserve">Returns %TRUE if the gesture is currently active. A gesture is active meanwhile there are touch sequences interacting with it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if gesture is active</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> </parameters> </method> <method name="is_grouped_with" c:identifier="gtk_gesture_is_grouped_with" version="3.14"> <doc xml:space="preserve">Returns %TRUE if both gestures pertain to the same group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the gestures are grouped</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="other" transfer-ownership="none"> <doc xml:space="preserve">another #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </parameter> </parameters> </method> <method name="is_recognized" c:identifier="gtk_gesture_is_recognized" version="3.14"> <doc xml:space="preserve">Returns %TRUE if the gesture is currently recognized. A gesture is recognized if there are as many interacting touch sequences as required by @gesture, and #GtkGesture::check returned %TRUE for the sequences being currently interpreted.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if gesture is recognized</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> </parameters> </method> <method name="set_sequence_state" c:identifier="gtk_gesture_set_sequence_state" version="3.14"> <doc xml:space="preserve">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 #GtkGesture::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: |[ 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_ACCEPTED); 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_ACCEPTED) 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @sequence is handled by @gesture, and the state is changed successfully</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="sequence" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEventSequence</doc> <type name="Gdk.EventSequence" c:type="GdkEventSequence*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the sequence state</doc> <type name="EventSequenceState" c:type="GtkEventSequenceState"/> </parameter> </parameters> </method> <method name="set_state" c:identifier="gtk_gesture_set_state" version="3.14"> <doc xml:space="preserve">Sets the state of all sequences that @gesture is currently interacting with. See gtk_gesture_set_sequence_state() for more details on sequence states.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the state of at least one sequence was changed successfully</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the sequence state</doc> <type name="EventSequenceState" c:type="GtkEventSequenceState"/> </parameter> </parameters> </method> <method name="set_window" c:identifier="gtk_gesture_set_window" version="3.14"> <doc xml:space="preserve">Sets a specific window to receive events about, so @gesture will effectively handle only events targeting @window, or a child of it. @window must pertain to gtk_event_controller_get_widget().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> <parameter name="window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkWindow, or %NULL</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="ungroup" c:identifier="gtk_gesture_ungroup" version="3.14"> <doc xml:space="preserve">Separates @gesture into an isolated group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="Gesture" c:type="GtkGesture*"/> </instance-parameter> </parameters> </method> <property name="n-points" version="3.14" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The number of touch points that trigger recognition on this gesture,</doc> <type name="guint" c:type="guint"/> </property> <property name="window" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If non-%NULL, the gesture will only listen for events that happen on this #GdkWindow, or a child of it.</doc> <type name="Gdk.Window"/> </property> <glib:signal name="begin" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted when the gesture is recognized. This means the number of touch sequences matches #GtkGesture:n-points, and the #GtkGesture::check handler(s) returned #TRUE. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sequence" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventSequence that made the gesture to be recognized</doc> <type name="Gdk.EventSequence"/> </parameter> </parameters> </glib:signal> <glib:signal name="cancel" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever a sequence is cancelled. This usually happens on active touches when gtk_event_controller_reset() is called on @gesture (manually, due to grabs...), or the individual @sequence was claimed by parent widgets' controllers (see gtk_gesture_set_sequence_state()). @gesture must forget everything about @sequence as a reaction to this signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sequence" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventSequence that was cancelled</doc> <type name="Gdk.EventSequence"/> </parameter> </parameters> </glib:signal> <glib:signal name="end" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted when @gesture either stopped recognizing the event sequences as something to be handled (the #GtkGesture::check handler returned %FALSE), or the number of touch sequences became higher or lower than #GtkGesture: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 #GtkGesture:n-points). This situation may be detected by checking through gtk_gesture_handles_sequence().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sequence" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventSequence that made gesture recognition to finish</doc> <type name="Gdk.EventSequence"/> </parameter> </parameters> </glib:signal> <glib:signal name="sequence-state-changed" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever a sequence state changes. See gtk_gesture_set_sequence_state() to know more about the expectable sequence lifetimes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sequence" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventSequence that was cancelled</doc> <type name="Gdk.EventSequence"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the new sequence state</doc> <type name="EventSequenceState"/> </parameter> </parameters> </glib:signal> <glib:signal name="update" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever an event is handled while the gesture is recognized. @sequence is guaranteed to pertain to the set of active touches.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sequence" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventSequence that was updated</doc> <type name="Gdk.EventSequence"/> </parameter> </parameters> </glib:signal> </class> <record name="GestureClass" c:type="GtkGestureClass" disguised="1" glib:is-gtype-struct-for="Gesture"> </record> <class name="GestureDrag" c:symbol-prefix="gesture_drag" c:type="GtkGestureDrag" parent="GestureSingle" glib:type-name="GtkGestureDrag" glib:get-type="gtk_gesture_drag_get_type" glib:type-struct="GestureDragClass"> <doc xml:space="preserve">#GtkGestureDrag is a #GtkGesture implementation that recognizes drag operations. The drag operation itself can be tracked throught the #GtkGestureDrag::drag-begin, #GtkGestureDrag::drag-update and #GtkGestureDrag::drag-end signals, or the relevant coordinates be extracted through gtk_gesture_drag_get_offset() and gtk_gesture_drag_get_start_point().</doc> <constructor name="new" c:identifier="gtk_gesture_drag_new" version="3.14"> <doc xml:space="preserve">Returns a newly created #GtkGesture that recognizes drags.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkGestureDrag</doc> <type name="Gesture" c:type="GtkGesture*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <method name="get_offset" c:identifier="gtk_gesture_drag_get_offset" version="3.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the gesture is active</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="GestureDrag" c:type="GtkGestureDrag*"/> </instance-parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">X offset for the current point</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">Y offset for the current point</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="get_start_point" c:identifier="gtk_gesture_drag_get_start_point" version="3.14"> <doc xml:space="preserve">If the @gesture is active, this function returns %TRUE and fills in @x and @y with the drag start coordinates, in window-relative coordinates.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the gesture is active</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGesture</doc> <type name="GestureDrag" c:type="GtkGestureDrag*"/> </instance-parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">X coordinate for the drag start point</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">Y coordinate for the drag start point</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <glib:signal name="drag-begin" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever dragging starts.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="start_x" transfer-ownership="none"> <doc xml:space="preserve">X coordinate, relative to the widget allocation</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="start_y" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate, relative to the widget allocation</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-end" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever the dragging is finished.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="offset_x" transfer-ownership="none"> <doc xml:space="preserve">X offset, relative to the start point</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="offset_y" transfer-ownership="none"> <doc xml:space="preserve">Y offset, relative to the start point</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-update" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever the dragging point moves.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="offset_x" transfer-ownership="none"> <doc xml:space="preserve">X offset, relative to the start point</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="offset_y" transfer-ownership="none"> <doc xml:space="preserve">Y offset, relative to the start point</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> </class> <record name="GestureDragClass" c:type="GtkGestureDragClass" disguised="1" glib:is-gtype-struct-for="GestureDrag"> </record> <class name="GestureLongPress" c:symbol-prefix="gesture_long_press" c:type="GtkGestureLongPress" parent="GestureSingle" glib:type-name="GtkGestureLongPress" glib:get-type="gtk_gesture_long_press_get_type" glib:type-struct="GestureLongPressClass"> <doc xml:space="preserve">#GtkGestureLongPress is a #GtkGesture implementation able to recognize long presses, triggering the #GtkGestureLongPress::pressed after the timeout is exceeded. If the touchpoint is lifted before the timeout passes, or if it drifts too far of the initial press point, the #GtkGestureLongPress::cancelled signal will be emitted.</doc> <constructor name="new" c:identifier="gtk_gesture_long_press_new" version="3.14"> <doc xml:space="preserve">Returns a newly created #GtkGesture that recognizes long presses.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkGestureLongPress</doc> <type name="Gesture" c:type="GtkGesture*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <property name="delay-factor" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <glib:signal name="cancelled" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever a press moved too far, or was released before #GtkGestureLongPress::pressed happened.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="pressed" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever a press goes unmoved/unreleased longer than what the GTK+ defaults tell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the X coordinate where the press happened, relative to the widget allocation</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the Y coordinate where the press happened, relative to the widget allocation</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> </class> <record name="GestureLongPressClass" c:type="GtkGestureLongPressClass" disguised="1" glib:is-gtype-struct-for="GestureLongPress"> </record> <class name="GestureMultiPress" c:symbol-prefix="gesture_multi_press" c:type="GtkGestureMultiPress" parent="GestureSingle" glib:type-name="GtkGestureMultiPress" glib:get-type="gtk_gesture_multi_press_get_type" glib:type-struct="GestureMultiPressClass"> <doc xml:space="preserve">#GtkGestureMultiPress is a #GtkGesture implementation able to recognize multiple clicks on a nearby zone, which can be listened for through the #GtkGestureMultiPress::pressed signal. Whenever time or distance between clicks exceed the GTK+ defaults, #GtkGestureMultiPress::stopped is emitted, and the click counter is reset. Callers may also restrict the area that is considered valid for a >1 touch/button press through gtk_gesture_multi_press_set_area(), so any click happening outside that area is considered to be a first click of its own.</doc> <constructor name="new" c:identifier="gtk_gesture_multi_press_new" version="3.14"> <doc xml:space="preserve">Returns a newly created #GtkGesture that recognizes single and multiple presses.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkGestureMultiPress</doc> <type name="Gesture" c:type="GtkGesture*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <method name="get_area" c:identifier="gtk_gesture_multi_press_get_area" version="3.14"> <doc xml:space="preserve">If an area was set through gtk_gesture_multi_press_set_area(), this function will return %TRUE and fill in @rect with the press area. See gtk_gesture_multi_press_set_area() for more details on what the press area represents.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @rect was filled with the press area</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureMultiPress</doc> <type name="GestureMultiPress" c:type="GtkGestureMultiPress*"/> </instance-parameter> <parameter name="rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the press area</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="set_area" c:identifier="gtk_gesture_multi_press_set_area" version="3.14"> <doc xml:space="preserve">If @rect is non-%NULL, the press area will be checked to be confined within the rectangle, otherwise the button count will be reset so the press is seen as being the first one. If @rect is %NULL, the area will be reset to an unrestricted state. Note: The rectangle is only used to determine whether any non-first click falls within the expected area. This is not akin to an input shape.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureMultiPress</doc> <type name="GestureMultiPress" c:type="GtkGestureMultiPress*"/> </instance-parameter> <parameter name="rect" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">rectangle to receive coordinates on</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> </parameters> </method> <glib:signal name="pressed" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever a button or touch press happens.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="n_press" transfer-ownership="none"> <doc xml:space="preserve">how many touch/button presses happened with this one</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">The X coordinate, in widget allocation coordinates</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">The Y coordinate, in widget allocation coordinates</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> <glib:signal name="released" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted when a button or touch is released. @n_press will report the number of press that is paired to this event, note that #GtkGestureMultiPress::stopped may have been emitted between the press and its release, @n_press will only start over at the next press.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="n_press" transfer-ownership="none"> <doc xml:space="preserve">number of press that is paired with this release</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">The X coordinate, in widget allocation coordinates</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">The Y coordinate, in widget allocation coordinates</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> <glib:signal name="stopped" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever any time/distance threshold has been exceeded.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="GestureMultiPressClass" c:type="GtkGestureMultiPressClass" disguised="1" glib:is-gtype-struct-for="GestureMultiPress"> </record> <class name="GesturePan" c:symbol-prefix="gesture_pan" c:type="GtkGesturePan" parent="GestureDrag" glib:type-name="GtkGesturePan" glib:get-type="gtk_gesture_pan_get_type" glib:type-struct="GesturePanClass"> <doc xml:space="preserve">#GtkGesturePan is a #GtkGesture implementation able to recognize pan gestures, those are drags that are locked to happen along one axis. The axis that a #GtkGesturePan handles is defined at construct time, and can be changed through gtk_gesture_pan_set_orientation(). When the gesture starts to be recognized, #GtkGesturePan will attempt to determine as early as possible whether the sequence is moving in the expected direction, and denying the sequence if this does not happen. Once a panning gesture along the expected axis is recognized, the #GtkGesturePan::pan signal will be emitted as input events are received, containing the offset in the given axis.</doc> <constructor name="new" c:identifier="gtk_gesture_pan_new" version="3.14"> <doc xml:space="preserve">Returns a newly created #GtkGesture that recognizes pan gestures.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkGesturePan</doc> <type name="Gesture" c:type="GtkGesture*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">expected orientation</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </constructor> <method name="get_orientation" c:identifier="gtk_gesture_pan_get_orientation" version="3.14"> <doc xml:space="preserve">Returns the orientation of the pan gestures that this @gesture expects.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the expected orientation for pan gestures</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">A #GtkGesturePan</doc> <type name="GesturePan" c:type="GtkGesturePan*"/> </instance-parameter> </parameters> </method> <method name="set_orientation" c:identifier="gtk_gesture_pan_set_orientation" version="3.14"> <doc xml:space="preserve">Sets the orientation to be expected on pan gestures.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">A #GtkGesturePan</doc> <type name="GesturePan" c:type="GtkGesturePan*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">expected orientation</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </method> <property name="orientation" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The expected orientation of pan gestures.</doc> <type name="Orientation"/> </property> <glib:signal name="pan" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted once a panning gesture along the expected axis is detected.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">current direction of the pan gesture</doc> <type name="PanDirection"/> </parameter> <parameter name="offset" transfer-ownership="none"> <doc xml:space="preserve">Offset along the gesture orientation</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> </class> <record name="GesturePanClass" c:type="GtkGesturePanClass" disguised="1" glib:is-gtype-struct-for="GesturePan"> </record> <class name="GestureRotate" c:symbol-prefix="gesture_rotate" c:type="GtkGestureRotate" parent="Gesture" glib:type-name="GtkGestureRotate" glib:get-type="gtk_gesture_rotate_get_type" glib:type-struct="GestureRotateClass"> <doc xml:space="preserve">#GtkGestureRotate is a #GtkGesture implementation able to recognize 2-finger rotations, whenever the angle between both handled sequences changes, the #GtkGestureRotate::angle-changed signal is emitted.</doc> <constructor name="new" c:identifier="gtk_gesture_rotate_new" version="3.14"> <doc xml:space="preserve">Returns a newly created #GtkGesture that recognizes 2-touch rotation gestures.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkGestureRotate</doc> <type name="Gesture" c:type="GtkGesture*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <method name="get_angle_delta" c:identifier="gtk_gesture_rotate_get_angle_delta" version="3.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the angle delta in radians</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureRotate</doc> <type name="GestureRotate" c:type="GtkGestureRotate*"/> </instance-parameter> </parameters> </method> <glib:signal name="angle-changed" when="first" version="3.14"> <doc xml:space="preserve">This signal is emitted when the angle between both tracked points changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="angle" transfer-ownership="none"> <doc xml:space="preserve">Current angle in radians</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="angle_delta" transfer-ownership="none"> <doc xml:space="preserve">Difference with the starting angle, in radians</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> </class> <record name="GestureRotateClass" c:type="GtkGestureRotateClass" disguised="1" glib:is-gtype-struct-for="GestureRotate"> </record> <class name="GestureSingle" c:symbol-prefix="gesture_single" c:type="GtkGestureSingle" parent="Gesture" glib:type-name="GtkGestureSingle" glib:get-type="gtk_gesture_single_get_type" glib:type-struct="GestureSingleClass"> <doc xml:space="preserve">#GtkGestureSingle is a subclass of #GtkGesture, optimized (although not restricted) for dealing with mouse and single-touch gestures. Under interaction, these gestures stick to the first interacting sequence, which is accessible through gtk_gesture_single_get_current_sequence() while the gesture is being interacted with. By default gestures react to both %GDK_BUTTON_PRIMARY and touch events, gtk_gesture_single_set_touch_only() can be used to change the touch behavior. Callers may also specify a different mouse button number to interact with through gtk_gesture_single_set_button(), or react to any mouse button by setting 0. While the gesture is active, the button being currently pressed can be known through gtk_gesture_single_get_current_button().</doc> <method name="get_button" c:identifier="gtk_gesture_single_get_button" version="3.14"> <doc xml:space="preserve">Returns the button number @gesture listens for, or 0 if @gesture reacts to any button press.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The button number, or 0 for any button</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSingle</doc> <type name="GestureSingle" c:type="GtkGestureSingle*"/> </instance-parameter> </parameters> </method> <method name="get_current_button" c:identifier="gtk_gesture_single_get_current_button" version="3.14"> <doc xml:space="preserve">Returns the button number currently interacting with @gesture, or 0 if there is none.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current button number</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSingle</doc> <type name="GestureSingle" c:type="GtkGestureSingle*"/> </instance-parameter> </parameters> </method> <method name="get_current_sequence" c:identifier="gtk_gesture_single_get_current_sequence" version="3.14"> <doc xml:space="preserve">Returns the event sequence currently interacting with @gesture. This is only meaningful if gtk_gesture_is_active() returns %TRUE.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the current sequence</doc> <type name="Gdk.EventSequence" c:type="GdkEventSequence*"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSingle</doc> <type name="GestureSingle" c:type="GtkGestureSingle*"/> </instance-parameter> </parameters> </method> <method name="get_exclusive" c:identifier="gtk_gesture_single_get_exclusive" version="3.14"> <doc xml:space="preserve">Gets whether a gesture is exclusive. For more information, see gtk_gesture_single_set_exclusive().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether the gesture is exclusive</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSingle</doc> <type name="GestureSingle" c:type="GtkGestureSingle*"/> </instance-parameter> </parameters> </method> <method name="get_touch_only" c:identifier="gtk_gesture_single_get_touch_only" version="3.14"> <doc xml:space="preserve">Returns %TRUE if the gesture is only triggered by touch events.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the gesture only handles touch events</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSingle</doc> <type name="GestureSingle" c:type="GtkGestureSingle*"/> </instance-parameter> </parameters> </method> <method name="set_button" c:identifier="gtk_gesture_single_set_button" version="3.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSingle</doc> <type name="GestureSingle" c:type="GtkGestureSingle*"/> </instance-parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">button number to listen to, or 0 for any button</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_exclusive" c:identifier="gtk_gesture_single_set_exclusive" version="3.14"> <doc xml:space="preserve">Sets whether @gesture is exclusive. An exclusive gesture will only handle pointer and "pointer emulated" touch events, so at any given time, there is only one sequence able to interact with those.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSingle</doc> <type name="GestureSingle" c:type="GtkGestureSingle*"/> </instance-parameter> <parameter name="exclusive" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make @gesture exclusive</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_touch_only" c:identifier="gtk_gesture_single_set_touch_only" version="3.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSingle</doc> <type name="GestureSingle" c:type="GtkGestureSingle*"/> </instance-parameter> <parameter name="touch_only" transfer-ownership="none"> <doc xml:space="preserve">whether @gesture handles only touch events</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="button" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Mouse button number to listen to, or 0 to listen for any button.</doc> <type name="guint" c:type="guint"/> </property> <property name="exclusive" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the gesture is exclusive. Exclusive gestures only listen to pointer and pointer emulated events.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="touch-only" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the gesture handles only touch events.</doc> <type name="gboolean" c:type="gboolean"/> </property> </class> <record name="GestureSingleClass" c:type="GtkGestureSingleClass" disguised="1" glib:is-gtype-struct-for="GestureSingle"> </record> <class name="GestureSwipe" c:symbol-prefix="gesture_swipe" c:type="GtkGestureSwipe" parent="GestureSingle" glib:type-name="GtkGestureSwipe" glib:get-type="gtk_gesture_swipe_get_type" glib:type-struct="GestureSwipeClass"> <doc xml:space="preserve">#GtkGestureSwipe is a #GtkGesture implementation able to recognize swipes, after a press/move/.../move/release sequence happens, the #GtkGestureSwipe::swipe signal will be emitted, providing the velocity and directionality of the sequence at the time it was lifted. If the velocity is desired in intermediate points, gtk_gesture_swipe_get_velocity() can be called on eg. a #GtkGesture::update handler. All velocities are reported in pixels/sec units.</doc> <constructor name="new" c:identifier="gtk_gesture_swipe_new" version="3.14"> <doc xml:space="preserve">Returns a newly created #GtkGesture that recognizes swipes.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkGestureSwipe</doc> <type name="Gesture" c:type="GtkGesture*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <method name="get_velocity" c:identifier="gtk_gesture_swipe_get_velocity" version="3.14"> <doc xml:space="preserve">If the gesture is recognized, this function returns %TRUE and fill in @velocity_x and @velocity_y with the recorded velocity, as per the last event(s) processed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether velocity could be calculated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureSwipe</doc> <type name="GestureSwipe" c:type="GtkGestureSwipe*"/> </instance-parameter> <parameter name="velocity_x" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return value for the velocity in the X axis, in pixels/sec</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="velocity_y" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return value for the velocity in the Y axis, in pixels/sec</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <glib:signal name="swipe" when="last" version="3.14"> <doc xml:space="preserve">This signal is emitted when the recognized gesture is finished, velocity and direction are a product of previously recorded events.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="velocity_x" transfer-ownership="none"> <doc xml:space="preserve">velocity in the X axis, in pixels/sec</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="velocity_y" transfer-ownership="none"> <doc xml:space="preserve">velocity in the Y axis, in pixels/sec</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> </class> <record name="GestureSwipeClass" c:type="GtkGestureSwipeClass" disguised="1" glib:is-gtype-struct-for="GestureSwipe"> </record> <class name="GestureZoom" c:symbol-prefix="gesture_zoom" c:type="GtkGestureZoom" parent="Gesture" glib:type-name="GtkGestureZoom" glib:get-type="gtk_gesture_zoom_get_type" glib:type-struct="GestureZoomClass"> <doc xml:space="preserve">#GtkGestureZoom is a #GtkGesture implementation able to recognize pinch/zoom gestures, whenever the distance between both tracked sequences changes, the #GtkGestureZoom::scale-changed signal is emitted to report the scale factor.</doc> <constructor name="new" c:identifier="gtk_gesture_zoom_new" version="3.14"> <doc xml:space="preserve">Returns a newly created #GtkGesture that recognizes zoom in/out gestures (usually known as pinch/zoom).</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkGestureZoom</doc> <type name="Gesture" c:type="GtkGesture*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <method name="get_scale_delta" c:identifier="gtk_gesture_zoom_get_scale_delta" version="3.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the scale delta</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="gesture" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGestureZoom</doc> <type name="GestureZoom" c:type="GtkGestureZoom*"/> </instance-parameter> </parameters> </method> <glib:signal name="scale-changed" when="first" version="3.14"> <doc xml:space="preserve">This signal is emitted whenever the distance between both tracked sequences changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">Scale delta, taking the initial state as 1:1</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> </class> <record name="GestureZoomClass" c:type="GtkGestureZoomClass" disguised="1" glib:is-gtype-struct-for="GestureZoom"> </record> <record name="Gradient" c:type="GtkGradient" glib:type-name="GtkGradient" glib:get-type="gtk_gradient_get_type" c:symbol-prefix="gradient"> <doc xml:space="preserve">GtkGradient is a boxed type that represents a gradient. It is the result of parsing a [gradient expression][gtkcssprovider-gradients]. To obtain the gradient represented by a GtkGradient, it has to be resolved with gtk_gradient_resolve(), which replaces all symbolic color references by the colors they refer to (in a given context) and constructs a #cairo_pattern_t value. It is not normally necessary to deal directly with #GtkGradients, since they are mostly used behind the scenes by #GtkStyleContext and #GtkCssProvider. #GtkGradient is deprecated. It was used internally by GTKâs CSS engine to represent gradients. As its handling is not conforming to modern web standards, it is not used anymore. If you want to use gradients in your own code, please use Cairo directly.</doc> <constructor name="new_linear" c:identifier="gtk_gradient_new_linear" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a new linear gradient along the line defined by (x0, y0) and (x1, y1). Before using the gradient a number of stop colors must be added through gtk_gradient_add_color_stop().</doc> <doc-deprecated xml:space="preserve">#GtkGradient is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkGradient</doc> <type name="Gradient" c:type="GtkGradient*"/> </return-value> <parameters> <parameter name="x0" transfer-ownership="none"> <doc xml:space="preserve">X coordinate of the starting point</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y0" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate of the starting point</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="x1" transfer-ownership="none"> <doc xml:space="preserve">X coordinate of the end point</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y1" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate of the end point</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <constructor name="new_radial" c:identifier="gtk_gradient_new_radial" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a new radial gradient along the two circles defined by (x0, y0, radius0) and (x1, y1, radius1). Before using the gradient a number of stop colors must be added through gtk_gradient_add_color_stop().</doc> <doc-deprecated xml:space="preserve">#GtkGradient is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkGradient</doc> <type name="Gradient" c:type="GtkGradient*"/> </return-value> <parameters> <parameter name="x0" transfer-ownership="none"> <doc xml:space="preserve">X coordinate of the start circle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y0" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate of the start circle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="radius0" transfer-ownership="none"> <doc xml:space="preserve">radius of the start circle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="x1" transfer-ownership="none"> <doc xml:space="preserve">X coordinate of the end circle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y1" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate of the end circle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="radius1" transfer-ownership="none"> <doc xml:space="preserve">radius of the end circle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <method name="add_color_stop" c:identifier="gtk_gradient_add_color_stop" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Adds a stop color to @gradient.</doc> <doc-deprecated xml:space="preserve">#GtkGradient is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gradient" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGradient</doc> <type name="Gradient" c:type="GtkGradient*"/> </instance-parameter> <parameter name="offset" transfer-ownership="none"> <doc xml:space="preserve">offset for the color stop</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">color to use</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </parameter> </parameters> </method> <method name="ref" c:identifier="gtk_gradient_ref" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Increases the reference count of @gradient.</doc> <doc-deprecated xml:space="preserve">#GtkGradient is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">The same @gradient</doc> <type name="Gradient" c:type="GtkGradient*"/> </return-value> <parameters> <instance-parameter name="gradient" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGradient</doc> <type name="Gradient" c:type="GtkGradient*"/> </instance-parameter> </parameters> </method> <method name="resolve" c:identifier="gtk_gradient_resolve" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">If @gradient is resolvable, @resolved_gradient will be filled in with the resolved gradient as a cairo_pattern_t, and %TRUE will be returned. Generally, if @gradient canât be resolved, it is due to it being defined on top of a named color that doesn't exist in @props.</doc> <doc-deprecated xml:space="preserve">#GtkGradient is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the gradient has been resolved</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="gradient" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGradient</doc> <type name="Gradient" c:type="GtkGradient*"/> </instance-parameter> <parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">#GtkStyleProperties to use when resolving named colors</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </parameter> <parameter name="resolved_gradient" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the resolved pattern</doc> <type name="cairo.Pattern" c:type="cairo_pattern_t**"/> </parameter> </parameters> </method> <method name="resolve_for_context" c:identifier="gtk_gradient_resolve_for_context"> <return-value transfer-ownership="full"> <type name="cairo.Pattern" c:type="cairo_pattern_t*"/> </return-value> <parameters> <instance-parameter name="gradient" transfer-ownership="none"> <type name="Gradient" c:type="GtkGradient*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> </parameters> </method> <method name="to_string" c:identifier="gtk_gradient_to_string" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a string representation for @gradient that is suitable for using in GTK CSS files.</doc> <doc-deprecated xml:space="preserve">#GtkGradient is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A string representation for @gradient</doc> <type name="utf8" c:type="char*"/> </return-value> <parameters> <instance-parameter name="gradient" transfer-ownership="none"> <doc xml:space="preserve">the gradient to print</doc> <type name="Gradient" c:type="GtkGradient*"/> </instance-parameter> </parameters> </method> <method name="unref" c:identifier="gtk_gradient_unref" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Decreases the reference count of @gradient, freeing its memory if the reference count reaches 0.</doc> <doc-deprecated xml:space="preserve">#GtkGradient is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="gradient" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGradient</doc> <type name="Gradient" c:type="GtkGradient*"/> </instance-parameter> </parameters> </method> </record> <class name="Grid" c:symbol-prefix="grid" c:type="GtkGrid" parent="Container" glib:type-name="GtkGrid" glib:get-type="gtk_grid_get_type" glib:type-struct="GridClass"> <doc xml:space="preserve">GtkGrid is a container which arranges its child widgets in rows and columns. It is a very similar to #GtkTable and #GtkBox, but it consistently uses #GtkWidgetâs #GtkWidget:margin and #GtkWidget:expand properties instead of custom child properties, and it fully supports [height-for-width geometry management][geometry-management]. Children are added using gtk_grid_attach(). They can span multiple rows or columns. It is also possible to add a child next to an existing child, using gtk_grid_attach_next_to(). The behaviour of GtkGrid when several children occupy the same grid cell is undefined. GtkGrid can be used like a #GtkBox by just using gtk_container_add(), which will place children next to each other in the direction determined by the #GtkOrientable:orientation property. # CSS nodes GtkGrid uses a single CSS node with name grid.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_grid_new"> <doc xml:space="preserve">Creates a new grid widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkGrid</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="attach" c:identifier="gtk_grid_attach"> <doc xml:space="preserve">Adds a widget to the grid. The position of @child is determined by @left and @top. The number of âcellsâ that @child will occupy is determined by @width and @height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the widget to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="left" transfer-ownership="none"> <doc xml:space="preserve">the column number to attach the left side of @child to</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="top" transfer-ownership="none"> <doc xml:space="preserve">the row number to attach the top side of @child to</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the number of columns that @child will span</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the number of rows that @child will span</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="attach_next_to" c:identifier="gtk_grid_attach_next_to"> <doc xml:space="preserve">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].</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the widget to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="sibling" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the child of @grid that @child will be placed next to, or %NULL to place @child at the beginning or end</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="side" transfer-ownership="none"> <doc xml:space="preserve">the side of @sibling that @child is positioned next to</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the number of columns that @child will span</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the number of rows that @child will span</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_baseline_row" c:identifier="gtk_grid_get_baseline_row" version="3.10"> <doc xml:space="preserve">Returns which row defines the global baseline of @grid.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the row index defining the global baseline</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> </parameters> </method> <method name="get_child_at" c:identifier="gtk_grid_get_child_at" version="3.2"> <doc xml:space="preserve">Gets the child of @grid whose area covers the grid cell whose upper left corner is at @left, @top.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the child at the given position, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="left" transfer-ownership="none"> <doc xml:space="preserve">the left edge of the cell</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="top" transfer-ownership="none"> <doc xml:space="preserve">the top edge of the cell</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_column_homogeneous" c:identifier="gtk_grid_get_column_homogeneous"> <doc xml:space="preserve">Returns whether all columns of @grid have the same width.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether all columns of @grid have the same width.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> </parameters> </method> <method name="get_column_spacing" c:identifier="gtk_grid_get_column_spacing"> <doc xml:space="preserve">Returns the amount of space between the columns of @grid.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the column spacing of @grid</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> </parameters> </method> <method name="get_row_baseline_position" c:identifier="gtk_grid_get_row_baseline_position" version="3.10"> <doc xml:space="preserve">Returns the baseline position of @row as set by gtk_grid_set_row_baseline_position() or the default value %GTK_BASELINE_POSITION_CENTER.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the baseline position of @row</doc> <type name="BaselinePosition" c:type="GtkBaselinePosition"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a row index</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_row_homogeneous" c:identifier="gtk_grid_get_row_homogeneous"> <doc xml:space="preserve">Returns whether all rows of @grid have the same height.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether all rows of @grid have the same height.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> </parameters> </method> <method name="get_row_spacing" c:identifier="gtk_grid_get_row_spacing"> <doc xml:space="preserve">Returns the amount of space between the rows of @grid.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the row spacing of @grid</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> </parameters> </method> <method name="insert_column" c:identifier="gtk_grid_insert_column" version="3.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position to insert the column at</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="insert_next_to" c:identifier="gtk_grid_insert_next_to" version="3.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="sibling" transfer-ownership="none"> <doc xml:space="preserve">the child of @grid that the new row or column will be placed next to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="side" transfer-ownership="none"> <doc xml:space="preserve">the side of @sibling that @child is positioned next to</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </method> <method name="insert_row" c:identifier="gtk_grid_insert_row" version="3.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position to insert the row at</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="remove_column" c:identifier="gtk_grid_remove_column" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position of the column to remove</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="remove_row" c:identifier="gtk_grid_remove_row" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position of the row to remove</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_baseline_row" c:identifier="gtk_grid_set_baseline_row" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">the row index</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_column_homogeneous" c:identifier="gtk_grid_set_column_homogeneous"> <doc xml:space="preserve">Sets whether all columns of @grid will have the same width.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make columns homogeneous</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_column_spacing" c:identifier="gtk_grid_set_column_spacing"> <doc xml:space="preserve">Sets the amount of space between columns of @grid.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the amount of space to insert between columns</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_row_baseline_position" c:identifier="gtk_grid_set_row_baseline_position" version="3.10"> <doc xml:space="preserve">Sets how the baseline should be positioned on @row of the grid, in case that row is assigned more space than is requested.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a row index</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBaselinePosition</doc> <type name="BaselinePosition" c:type="GtkBaselinePosition"/> </parameter> </parameters> </method> <method name="set_row_homogeneous" c:identifier="gtk_grid_set_row_homogeneous"> <doc xml:space="preserve">Sets whether all rows of @grid will have the same height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make rows homogeneous</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_row_spacing" c:identifier="gtk_grid_set_row_spacing"> <doc xml:space="preserve">Sets the amount of space between rows of @grid.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="grid" transfer-ownership="none"> <doc xml:space="preserve">a #GtkGrid</doc> <type name="Grid" c:type="GtkGrid*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the amount of space to insert between rows</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <property name="baseline-row" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="column-homogeneous" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="column-spacing" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="row-homogeneous" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="row-spacing" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <field name="container" readable="0" private="1"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="GridPrivate" c:type="GtkGridPrivate*"/> </field> </class> <record name="GridClass" c:type="GtkGridClass" glib:is-gtype-struct-for="Grid"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="GridPrivate" c:type="GtkGridPrivate" disguised="1"> </record> <class name="HBox" c:symbol-prefix="hbox" c:type="GtkHBox" parent="Box" glib:type-name="GtkHBox" glib:get-type="gtk_hbox_get_type" glib:type-struct="HBoxClass"> <doc xml:space="preserve">#GtkHBox is a container that organizes child widgets into a single row. Use the #GtkBox packing interface to determine the arrangement, spacing, width, and alignment of #GtkHBox children. All children are allocated the same height. GtkHBox has been deprecated. You can use #GtkBox instead, which is a very quick and easy change. If you have derived your own classes from GtkHBox, you can simply change the inheritance to derive directly from #GtkBox. No further changes are needed, since the default value of the #GtkOrientable:orientation property is %GTK_ORIENTATION_HORIZONTAL. If you donât need first-child or last-child styling, and want your code to be future-proof, the recommendation is to switch to #GtkGrid instead of nested boxes. For more information about migrating to #GtkGrid, see [Migrating from other containers to GtkGrid][gtk-migrating-GtkGrid].</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_hbox_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new #GtkHBox.</doc> <doc-deprecated xml:space="preserve">You can use gtk_box_new() with %GTK_ORIENTATION_HORIZONTAL instead, which is a quick and easy change. But the recommendation is to switch to #GtkGrid, since #GtkBox is going to go away eventually. See [Migrating from other containers to GtkGrid][gtk-migrating-GtkGrid].</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkHBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if all children are to be given equal space allotments.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the number of pixels to place by default between children.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </constructor> <field name="box"> <type name="Box" c:type="GtkBox"/> </field> </class> <record name="HBoxClass" c:type="GtkHBoxClass" glib:is-gtype-struct-for="HBox"> <field name="parent_class"> <type name="BoxClass" c:type="GtkBoxClass"/> </field> </record> <class name="HButtonBox" c:symbol-prefix="hbutton_box" c:type="GtkHButtonBox" parent="ButtonBox" glib:type-name="GtkHButtonBox" glib:get-type="gtk_hbutton_box_get_type" glib:type-struct="HButtonBoxClass"> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_hbutton_box_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new horizontal button box.</doc> <doc-deprecated xml:space="preserve">Use gtk_button_box_new() with %GTK_ORIENTATION_HORIZONTAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new button box #GtkWidget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="button_box"> <type name="ButtonBox" c:type="GtkButtonBox"/> </field> </class> <record name="HButtonBoxClass" c:type="GtkHButtonBoxClass" glib:is-gtype-struct-for="HButtonBox"> <field name="parent_class"> <type name="ButtonBoxClass" c:type="GtkButtonBoxClass"/> </field> </record> <class name="HPaned" c:symbol-prefix="hpaned" c:type="GtkHPaned" parent="Paned" glib:type-name="GtkHPaned" glib:get-type="gtk_hpaned_get_type" glib:type-struct="HPanedClass"> <doc xml:space="preserve">The HPaned widget is a container widget with two children arranged horizontally. The division between the two panes is adjustable by the user by dragging a handle. See #GtkPaned for details. GtkHPaned has been deprecated, use #GtkPaned instead.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_hpaned_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Create a new #GtkHPaned</doc> <doc-deprecated xml:space="preserve">Use gtk_paned_new() with %GTK_ORIENTATION_HORIZONTAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkHPaned</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="paned"> <type name="Paned" c:type="GtkPaned"/> </field> </class> <record name="HPanedClass" c:type="GtkHPanedClass" glib:is-gtype-struct-for="HPaned"> <field name="parent_class"> <type name="PanedClass" c:type="GtkPanedClass"/> </field> </record> <class name="HSV" c:symbol-prefix="hsv" c:type="GtkHSV" parent="Widget" glib:type-name="GtkHSV" glib:get-type="gtk_hsv_get_type" glib:type-struct="HSVClass"> <doc xml:space="preserve">#GtkHSV is the âcolor wheelâ part of a complete color selector widget. It allows to select a color by determining its HSV components in an intuitive way. Moving the selection around the outer ring changes the hue, and moving the selection point inside the inner triangle changes value and saturation. #GtkHSV has been deprecated together with #GtkColorSelection, where it was used.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_hsv_new" version="2.14"> <doc xml:space="preserve">Creates a new HSV color selector.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly-created HSV color selector.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <function name="to_rgb" c:identifier="gtk_hsv_to_rgb" version="2.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="h" transfer-ownership="none"> <doc xml:space="preserve">Hue</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="s" transfer-ownership="none"> <doc xml:space="preserve">Saturation</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="v" transfer-ownership="none"> <doc xml:space="preserve">Value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="r" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the red component</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="g" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the green component</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="b" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the blue component</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </function> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="hsv" transfer-ownership="none"> <type name="HSV" c:type="GtkHSV*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="move"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="hsv" transfer-ownership="none"> <type name="HSV" c:type="GtkHSV*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </virtual-method> <method name="get_color" c:identifier="gtk_hsv_get_color" version="2.14"> <doc xml:space="preserve">Queries the current color in an HSV color selector. Returned values will be in the [0.0, 1.0] range.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="hsv" transfer-ownership="none"> <doc xml:space="preserve">An HSV color selector</doc> <type name="HSV" c:type="GtkHSV*"/> </instance-parameter> <parameter name="h" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the hue</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="s" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the saturation</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="v" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the value</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="get_metrics" c:identifier="gtk_hsv_get_metrics" version="2.14"> <doc xml:space="preserve">Queries the size and ring width of an HSV color selector.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="hsv" transfer-ownership="none"> <doc xml:space="preserve">An HSV color selector</doc> <type name="HSV" c:type="GtkHSV*"/> </instance-parameter> <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the diameter of the hue ring</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="ring_width" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the width of the hue ring</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="is_adjusting" c:identifier="gtk_hsv_is_adjusting" version="2.14"> <doc xml:space="preserve">An HSV color selector can be said to be adjusting if multiple rapid changes are being made to its value, for example, when the user is adjusting the value with the mouse. This function queries whether the HSV color selector is being adjusted or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if clients can ignore changes to the color value, since they may be transitory, or %FALSE if they should consider the color value status to be final.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="hsv" transfer-ownership="none"> <doc xml:space="preserve">A #GtkHSV</doc> <type name="HSV" c:type="GtkHSV*"/> </instance-parameter> </parameters> </method> <method name="set_color" c:identifier="gtk_hsv_set_color" version="2.14"> <doc xml:space="preserve">Sets the current color in an HSV color selector. Color component values must be in the [0.0, 1.0] range.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="hsv" transfer-ownership="none"> <doc xml:space="preserve">An HSV color selector</doc> <type name="HSV" c:type="GtkHSV*"/> </instance-parameter> <parameter name="h" transfer-ownership="none"> <doc xml:space="preserve">Hue</doc> <type name="gdouble" c:type="double"/> </parameter> <parameter name="s" transfer-ownership="none"> <doc xml:space="preserve">Saturation</doc> <type name="gdouble" c:type="double"/> </parameter> <parameter name="v" transfer-ownership="none"> <doc xml:space="preserve">Value</doc> <type name="gdouble" c:type="double"/> </parameter> </parameters> </method> <method name="set_metrics" c:identifier="gtk_hsv_set_metrics" version="2.14"> <doc xml:space="preserve">Sets the size and ring width of an HSV color selector.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="hsv" transfer-ownership="none"> <doc xml:space="preserve">An HSV color selector</doc> <type name="HSV" c:type="GtkHSV*"/> </instance-parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">Diameter for the hue ring</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="ring_width" transfer-ownership="none"> <doc xml:space="preserve">Width of the hue ring</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <field name="parent_instance"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="HSVPrivate" c:type="GtkHSVPrivate*"/> </field> <glib:signal name="changed" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="move" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="DirectionType"/> </parameter> </parameters> </glib:signal> </class> <record name="HSVClass" c:type="GtkHSVClass" glib:is-gtype-struct-for="HSV"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="hsv" transfer-ownership="none"> <type name="HSV" c:type="GtkHSV*"/> </parameter> </parameters> </callback> </field> <field name="move"> <callback name="move"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="hsv" transfer-ownership="none"> <type name="HSV" c:type="GtkHSV*"/> </parameter> <parameter name="type" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="HSVPrivate" c:type="GtkHSVPrivate" disguised="1"> </record> <class name="HScale" c:symbol-prefix="hscale" c:type="GtkHScale" parent="Scale" glib:type-name="GtkHScale" glib:get-type="gtk_hscale_get_type" glib:type-struct="HScaleClass"> <doc xml:space="preserve">The #GtkHScale widget is used to allow the user to select a value using a horizontal slider. To create one, use gtk_hscale_new_with_range(). The position to show the current value, and the number of decimal places shown can be set using the parent #GtkScale classâs functions. GtkHScale has been deprecated, use #GtkScale instead.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_hscale_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new #GtkHScale.</doc> <doc-deprecated xml:space="preserve">Use gtk_scale_new() with %GTK_ORIENTATION_HORIZONTAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkHScale.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkAdjustment which sets the range of the scale.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <constructor name="new_with_range" c:identifier="gtk_hscale_new_with_range" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new horizontal scale widget that lets 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 gtk_scale_set_digits() to correct it.</doc> <doc-deprecated xml:space="preserve">Use gtk_scale_new_with_range() with %GTK_ORIENTATION_HORIZONTAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkHScale</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="min" transfer-ownership="none"> <doc xml:space="preserve">minimum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="max" transfer-ownership="none"> <doc xml:space="preserve">maximum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">step increment (tick size) used with keyboard shortcuts</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <field name="scale"> <type name="Scale" c:type="GtkScale"/> </field> </class> <record name="HScaleClass" c:type="GtkHScaleClass" glib:is-gtype-struct-for="HScale"> <field name="parent_class"> <type name="ScaleClass" c:type="GtkScaleClass"/> </field> </record> <class name="HScrollbar" c:symbol-prefix="hscrollbar" c:type="GtkHScrollbar" parent="Scrollbar" glib:type-name="GtkHScrollbar" glib:get-type="gtk_hscrollbar_get_type" glib:type-struct="HScrollbarClass"> <doc xml:space="preserve">The #GtkHScrollbar widget is a widget arranged horizontally creating a scrollbar. See #GtkScrollbar for details on scrollbars. #GtkAdjustment pointers may be added to handle the adjustment of the scrollbar or it may be left %NULL in which case one will be created for you. See #GtkScrollbar for a description of what the fields in an adjustment represent for a scrollbar. GtkHScrollbar has been deprecated, use #GtkScrollbar instead.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_hscrollbar_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new horizontal scrollbar.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollbar_new() with %GTK_ORIENTATION_HORIZONTAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkHScrollbar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkAdjustment to use, or %NULL to create a new adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <field name="scrollbar"> <type name="Scrollbar" c:type="GtkScrollbar"/> </field> </class> <record name="HScrollbarClass" c:type="GtkHScrollbarClass" glib:is-gtype-struct-for="HScrollbar"> <field name="parent_class"> <type name="ScrollbarClass" c:type="GtkScrollbarClass"/> </field> </record> <class name="HSeparator" c:symbol-prefix="hseparator" c:type="GtkHSeparator" parent="Separator" glib:type-name="GtkHSeparator" glib:get-type="gtk_hseparator_get_type" glib:type-struct="HSeparatorClass"> <doc xml:space="preserve">The #GtkHSeparator widget is a horizontal separator, used to group the widgets within a window. It displays a horizontal line with a shadow to make it appear sunken into the interface. > The #GtkHSeparator widget is not used as a separator within menus. > To create a separator in a menu create an empty #GtkSeparatorMenuItem > widget using gtk_separator_menu_item_new() and add it to the menu with > gtk_menu_shell_append(). GtkHSeparator has been deprecated, use #GtkSeparator instead.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_hseparator_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new #GtkHSeparator.</doc> <doc-deprecated xml:space="preserve">Use gtk_separator_new() with %GTK_ORIENTATION_HORIZONTAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkHSeparator.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="separator"> <type name="Separator" c:type="GtkSeparator"/> </field> </class> <record name="HSeparatorClass" c:type="GtkHSeparatorClass" glib:is-gtype-struct-for="HSeparator"> <field name="parent_class"> <type name="SeparatorClass" c:type="GtkSeparatorClass"/> </field> </record> <class name="HandleBox" c:symbol-prefix="handle_box" c:type="GtkHandleBox" parent="Bin" glib:type-name="GtkHandleBox" glib:get-type="gtk_handle_box_get_type" glib:type-struct="HandleBoxClass"> <doc xml:space="preserve">The #GtkHandleBox widget allows a portion of a window to be "torn off". It is a bin widget which displays its child and a handle that the user can drag to tear off a separate window (the âfloat windowâ) containing the child widget. A thin âghostâ is drawn in the original location of the handlebox. By dragging the separate window back to its original location, it can be reattached. When reattaching, the ghost and float window, must be aligned along one of the edges, the âsnap edgeâ. This either can be specified by the application programmer explicitly, or GTK+ will pick a reasonable default based on the handle position. To make detaching and reattaching the handlebox as minimally confusing as possible to the user, it is important to set the snap edge so that the snap edge does not move when the handlebox is deattached. For instance, if the handlebox is packed at the bottom of a VBox, then when the handlebox is detached, the bottom edge of the handlebox's allocation will remain fixed as the height of the handlebox shrinks, so the snap edge should be set to %GTK_POS_BOTTOM. > #GtkHandleBox has been deprecated. It is very specialized, lacks features > to make it useful and most importantly does not fit well into modern > application design. Do not use it. There is no replacement.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_handle_box_new" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Create a new handle box.</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkHandleBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="child_attached"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="child_detached"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <method name="get_child_detached" c:identifier="gtk_handle_box_get_child_detached" version="2.14" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Whether the handleboxâs child is currently detached.</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the child is currently detached, otherwise %FALSE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHandleBox</doc> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> </parameters> </method> <method name="get_handle_position" c:identifier="gtk_handle_box_get_handle_position" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Gets the handle position of the handle box. See gtk_handle_box_set_handle_position().</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current handle position.</doc> <type name="PositionType" c:type="GtkPositionType"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHandleBox</doc> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> </parameters> </method> <method name="get_shadow_type" c:identifier="gtk_handle_box_get_shadow_type" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Gets the type of shadow drawn around the handle box. See gtk_handle_box_set_shadow_type().</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the type of shadow currently drawn around the handle box.</doc> <type name="ShadowType" c:type="GtkShadowType"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHandleBox</doc> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> </parameters> </method> <method name="get_snap_edge" c:identifier="gtk_handle_box_get_snap_edge" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Gets the edge used for determining reattachment of the handle box. See gtk_handle_box_set_snap_edge().</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the edge used for determining reattachment, or (GtkPositionType)-1 if this is determined (as per default) from the handle position.</doc> <type name="PositionType" c:type="GtkPositionType"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHandleBox</doc> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> </parameters> </method> <method name="set_handle_position" c:identifier="gtk_handle_box_set_handle_position" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the side of the handlebox where the handle is drawn.</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHandleBox</doc> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the side of the handlebox where the handle should be drawn.</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </method> <method name="set_shadow_type" c:identifier="gtk_handle_box_set_shadow_type" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the type of shadow to be drawn around the border of the handle box.</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHandleBox</doc> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the shadow type.</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> </parameters> </method> <method name="set_snap_edge" c:identifier="gtk_handle_box_set_snap_edge" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the snap edge of a handlebox. The snap edge is the edge of the detached child that must be aligned with the corresponding edge of the âghostâ left behind when the child was detached to reattach the torn-off window. Usually, the snap edge should be chosen so that it stays in the same place on the screen when the handlebox is torn off. If the snap edge is not set, then an appropriate value will be guessed from the handle position. If the handle position is %GTK_POS_RIGHT or %GTK_POS_LEFT, then the snap edge will be %GTK_POS_TOP, otherwise it will be %GTK_POS_LEFT.</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="handle_box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHandleBox</doc> <type name="HandleBox" c:type="GtkHandleBox*"/> </instance-parameter> <parameter name="edge" transfer-ownership="none"> <doc xml:space="preserve">the snap edge, or -1 to unset the value; in which case GTK+ will try to guess an appropriate value in the future.</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </method> <property name="child-detached" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="handle-position" writable="1" transfer-ownership="none"> <type name="PositionType"/> </property> <property name="shadow-type" writable="1" transfer-ownership="none"> <type name="ShadowType"/> </property> <property name="snap-edge" writable="1" transfer-ownership="none"> <type name="PositionType"/> </property> <property name="snap-edge-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="bin"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="HandleBoxPrivate" c:type="GtkHandleBoxPrivate*"/> </field> <glib:signal name="child-attached" when="first" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">This signal is emitted when the contents of the handlebox are reattached to the main window.</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the child widget of the handlebox. (this argument provides no extra information and is here only for backwards-compatibility)</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="child-detached" when="first" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">This signal is emitted when the contents of the handlebox are detached from the main window.</doc> <doc-deprecated xml:space="preserve">#GtkHandleBox has been deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the child widget of the handlebox. (this argument provides no extra information and is here only for backwards-compatibility)</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> </class> <record name="HandleBoxClass" c:type="GtkHandleBoxClass" glib:is-gtype-struct-for="HandleBox"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="child_attached"> <callback name="child_attached"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="handle_box" transfer-ownership="none"> <type name="HandleBox" c:type="GtkHandleBox*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="child_detached"> <callback name="child_detached"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="handle_box" transfer-ownership="none"> <type name="HandleBox" c:type="GtkHandleBox*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="HandleBoxPrivate" c:type="GtkHandleBoxPrivate" disguised="1"> </record> <class name="HeaderBar" c:symbol-prefix="header_bar" c:type="GtkHeaderBar" parent="Container" glib:type-name="GtkHeaderBar" glib:get-type="gtk_header_bar_get_type" glib:type-struct="HeaderBarClass"> <doc xml:space="preserve">GtkHeaderBar is similar to a horizontal #GtkBox. It allows children to be placed at the start or the end. In addition, it allows a title and subtitle to be displayed. The title will be centered with respect to the width of the box, even if the children at either side take up different amounts of space. The height of the titlebar will be set to provide sufficient space for the subtitle, even if none is currently set. If a subtitle is not needed, the space reservation can be turned off with gtk_header_bar_set_has_subtitle(). GtkHeaderBar can add typical window frame controls, such as minimize, maximize and close buttons, or the window icon. For these reasons, GtkHeaderBar is the natural choice for use as the custom titlebar widget of a #GtkWindow (see gtk_window_set_titlebar()), as it gives features typical of titlebars while allowing the addition of child widgets.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_header_bar_new" version="3.10"> <doc xml:space="preserve">Creates a new #GtkHeaderBar widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkHeaderBar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_custom_title" c:identifier="gtk_header_bar_get_custom_title" version="3.10"> <doc xml:space="preserve">Retrieves the custom title widget of the header. See gtk_header_bar_set_custom_title().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the custom title widget of the header, or %NULL if none has been set explicitly.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> </parameters> </method> <method name="get_decoration_layout" c:identifier="gtk_header_bar_get_decoration_layout" version="3.12"> <doc xml:space="preserve">Gets the decoration layout set with gtk_header_bar_set_decoration_layout().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the decoration layout</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> </parameters> </method> <method name="get_has_subtitle" c:identifier="gtk_header_bar_get_has_subtitle" version="3.12"> <doc xml:space="preserve">Retrieves whether the header bar reserves space for a subtitle, regardless if one is currently set or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the header bar reserves space for a subtitle</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> </parameters> </method> <method name="get_show_close_button" c:identifier="gtk_header_bar_get_show_close_button" version="3.10"> <doc xml:space="preserve">Returns whether this header bar shows the standard window decorations.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the decorations are shown</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> </parameters> </method> <method name="get_subtitle" c:identifier="gtk_header_bar_get_subtitle" version="3.10"> <doc xml:space="preserve">Retrieves the subtitle of the header. See gtk_header_bar_set_subtitle().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the subtitle of the header, or %NULL if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_header_bar_get_title" version="3.10"> <doc xml:space="preserve">Retrieves the title of the header. See gtk_header_bar_set_title().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the title of the header, or %NULL if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> </parameters> </method> <method name="pack_end" c:identifier="gtk_header_bar_pack_end" version="3.10"> <doc xml:space="preserve">Adds @child to @bar, packed with reference to the end of the @bar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">A #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to be added to @bar</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="pack_start" c:identifier="gtk_header_bar_pack_start" version="3.10"> <doc xml:space="preserve">Adds @child to @bar, packed with reference to the start of the @bar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">A #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to be added to @bar</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_custom_title" c:identifier="gtk_header_bar_set_custom_title" version="3.10"> <doc xml:space="preserve">Sets a custom title for the #GtkHeaderBar. The title should help a user identify the current view. This supersedes any title set by gtk_header_bar_set_title() or gtk_header_bar_set_subtitle(). To achieve the same style as the builtin title and subtitle, use the âtitleâ and âsubtitleâ style classes. You should set the custom title to %NULL, for the header title label to be visible again.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> <parameter name="title_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a custom widget to use for a title</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_decoration_layout" c:identifier="gtk_header_bar_set_decoration_layout" version="3.12"> <doc xml:space="preserve">Sets the decoration layout for this header bar, overriding the #GtkSettings: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, icon (the window icon) and menu (a menu button for the fallback app menu). For example, âmenu:minimize,maximize,closeâ specifies a menu on the left, and minimize, maximize and close buttons on the right.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> <parameter name="layout" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a decoration layout, or %NULL to unset the layout</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_has_subtitle" c:identifier="gtk_header_bar_set_has_subtitle" version="3.12"> <doc xml:space="preserve">Sets whether the header bar should reserve space for a subtitle, even if none is currently set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to reserve space for a subtitle</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_close_button" c:identifier="gtk_header_bar_set_show_close_button" version="3.10"> <doc xml:space="preserve">Sets whether this header bar shows the standard window decorations, including close, maximize, and minimize.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to show standard window decorations</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_subtitle" c:identifier="gtk_header_bar_set_subtitle" version="3.10"> <doc xml:space="preserve">Sets the subtitle of the #GtkHeaderBar. The title should give a user an additional detail to help him identify the current view. Note that GtkHeaderBar by default reserves room for the subtitle, even if none is currently set. If this is not desired, set the #GtkHeaderBar:has-subtitle property to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> <parameter name="subtitle" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a subtitle, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_header_bar_set_title" version="3.10"> <doc xml:space="preserve">Sets the title of the #GtkHeaderBar. The title should help a user identify the current view. A good title should not include the application name.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkHeaderBar</doc> <type name="HeaderBar" c:type="GtkHeaderBar*"/> </instance-parameter> <parameter name="title" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a title, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="custom-title" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="decoration-layout" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The decoration layout for buttons. If this property is not set, the #GtkSettings:gtk-decoration-layout setting is used. See gtk_header_bar_set_decoration_layout() for information about the format of this string.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="decoration-layout-set" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Set to %TRUE if #GtkHeaderBar:decoration-layout is set.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-subtitle" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, reserve space for a subtitle, even if none is currently set.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-close-button" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to show window decorations. Which buttons are actually shown and where is determined by the #GtkHeaderBar: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).</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="spacing" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="subtitle" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="title" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> </class> <record name="HeaderBarClass" c:type="GtkHeaderBarClass" glib:is-gtype-struct-for="HeaderBar"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="HeaderBarPrivate" c:type="GtkHeaderBarPrivate" disguised="1"> </record> <class name="IMContext" c:symbol-prefix="im_context" c:type="GtkIMContext" parent="GObject.Object" abstract="1" glib:type-name="GtkIMContext" glib:get-type="gtk_im_context_get_type" glib:type-struct="IMContextClass"> <doc xml:space="preserve">#GtkIMContext defines the interface for GTK+ input methods. An input method is used by GTK+ text input widgets like #GtkEntry to map from key events to Unicode character strings. The default input method can be set programmatically via the #GtkSettings:gtk-im-module GtkSettings property. Alternatively, you may set the GTK_IM_MODULE environment variable as documented in [Running GTK+ Applications][gtk-running]. The #GtkEntry #GtkEntry:im-module and #GtkTextView #GtkTextView:im-module properties may also be used to set input methods for specific widget instances. For instance, a certain entry widget might be expected to contain certain characters which would be easier to input with a certain input method. An input method may consume multiple key events in sequence and finally output the composed result. This is called preediting, and an input method may provide feedback about this process by displaying the intermediate composition states as preedit text. For instance, the default GTK+ input method implements the input of arbitrary Unicode code points by holding down the Control and Shift keys and then typing âUâ followed by the hexadecimal digits of the code point. When releasing the Control and Shift keys, preediting ends and the character is inserted as text. Ctrl+Shift+u20AC for example results in the ⏠sign. Additional input methods can be made available for use by GTK+ widgets as loadable modules. An input method module is a small shared library which implements a subclass of #GtkIMContext or #GtkIMContextSimple and exports these four functions: |[<!-- language="C" --> void im_module_init(GTypeModule *module); ]| This function should register the #GType of the #GtkIMContext subclass which implements the input method by means of g_type_module_register_type(). Note that g_type_register_static() cannot be used as the type needs to be registered dynamically. |[<!-- language="C" --> void im_module_exit(void); ]| Here goes any cleanup code your input method might require on module unload. |[<!-- language="C" --> void im_module_list(const GtkIMContextInfo ***contexts, int *n_contexts) { *contexts = info_list; *n_contexts = G_N_ELEMENTS (info_list); } ]| This function returns the list of input methods provided by the module. The example implementation above shows a common solution and simply returns a pointer to statically defined array of #GtkIMContextInfo items for each provided input method. |[<!-- language="C" --> GtkIMContext * im_module_create(const gchar *context_id); ]| This function should return a pointer to a newly created instance of the #GtkIMContext subclass identified by @context_id. The context ID is the same as specified in the #GtkIMContextInfo array returned by im_module_list(). After a new loadable input method module has been installed on the system, the configuration file `gtk.immodules` needs to be regenerated by [gtk-query-immodules-3.0][gtk-query-immodules-3.0], in order for the new input method to become available to GTK+ applications.</doc> <virtual-method name="commit"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="delete_surrounding" invoker="delete_surrounding"> <doc xml:space="preserve">Asks the widget that the input context is attached to to delete characters around the cursor position by emitting the GtkIMContext::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 gtk_im_context_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 subsitutions in the existing text in response to new input. It is not useful for applications.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal was handled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="offset" transfer-ownership="none"> <doc xml:space="preserve">offset from cursor position in chars; a negative value means start before the cursor.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters to delete.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="filter_keypress" invoker="filter_keypress"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the input method handled the key event.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the key event</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </virtual-method> <virtual-method name="focus_in" invoker="focus_in"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="focus_out" invoker="focus_out"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_preedit_string" invoker="get_preedit_string"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="str" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store the retrieved string. The string retrieved must be freed with g_free().</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="attrs" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store the retrieved attribute list. When you are done with this list, you must unreference it with pango_attr_list_unref().</doc> <type name="Pango.AttrList" c:type="PangoAttrList**"/> </parameter> <parameter name="cursor_pos" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store position of cursor (in characters) within the preedit string.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_surrounding" invoker="get_surrounding"> <doc xml:space="preserve">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 GtkIMContext::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 gtk_im_context_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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if surrounding text was provided; in this case you must free the result stored in *text.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="text" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">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().</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="cursor_index" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store byte index of the insertion cursor within @text.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="preedit_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="preedit_end"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="preedit_start"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="reset" invoker="reset"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="retrieve_surrounding"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="set_client_window" invoker="set_client_window"> <doc xml:space="preserve">Set the client window for the input context; this is the #GdkWindow in which the input appears. This window is used in order to correctly position status windows, and may also be used for purposes internal to the input method.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the client window. This may be %NULL to indicate that the previous client window no longer exists.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_cursor_location" invoker="set_cursor_location"> <doc xml:space="preserve">Notify the input method that a change in cursor position has been made. The location is relative to the client window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">new location</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_surrounding" invoker="set_surrounding"> <doc xml:space="preserve">Sets surrounding context around the insertion point and preedit string. This function is expected to be called in response to the GtkIMContext::retrieve_surrounding signal, and will likely have no effect if called at other times.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text surrounding the insertion point, as UTF-8. the preedit string should not be included within @text.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">the length of @text, or -1 if @text is nul-terminated</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="cursor_index" transfer-ownership="none"> <doc xml:space="preserve">the byte index of the insertion cursor within @text.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_use_preedit" invoker="set_use_preedit"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="use_preedit" transfer-ownership="none"> <doc xml:space="preserve">whether the IM context should use the preedit string.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <method name="delete_surrounding" c:identifier="gtk_im_context_delete_surrounding"> <doc xml:space="preserve">Asks the widget that the input context is attached to to delete characters around the cursor position by emitting the GtkIMContext::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 gtk_im_context_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 subsitutions in the existing text in response to new input. It is not useful for applications.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal was handled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="offset" transfer-ownership="none"> <doc xml:space="preserve">offset from cursor position in chars; a negative value means start before the cursor.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters to delete.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="filter_keypress" c:identifier="gtk_im_context_filter_keypress"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the input method handled the key event.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the key event</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </method> <method name="focus_in" c:identifier="gtk_im_context_focus_in"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </method> <method name="focus_out" c:identifier="gtk_im_context_focus_out"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </method> <method name="get_preedit_string" c:identifier="gtk_im_context_get_preedit_string"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="str" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store the retrieved string. The string retrieved must be freed with g_free().</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="attrs" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store the retrieved attribute list. When you are done with this list, you must unreference it with pango_attr_list_unref().</doc> <type name="Pango.AttrList" c:type="PangoAttrList**"/> </parameter> <parameter name="cursor_pos" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store position of cursor (in characters) within the preedit string.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_surrounding" c:identifier="gtk_im_context_get_surrounding"> <doc xml:space="preserve">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 GtkIMContext::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 gtk_im_context_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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if surrounding text was provided; in this case you must free the result stored in *text.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="text" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">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().</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="cursor_index" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store byte index of the insertion cursor within @text.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="reset" c:identifier="gtk_im_context_reset"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> </parameters> </method> <method name="set_client_window" c:identifier="gtk_im_context_set_client_window"> <doc xml:space="preserve">Set the client window for the input context; this is the #GdkWindow in which the input appears. This window is used in order to correctly position status windows, and may also be used for purposes internal to the input method.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the client window. This may be %NULL to indicate that the previous client window no longer exists.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="set_cursor_location" c:identifier="gtk_im_context_set_cursor_location"> <doc xml:space="preserve">Notify the input method that a change in cursor position has been made. The location is relative to the client window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">new location</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> </parameters> </method> <method name="set_surrounding" c:identifier="gtk_im_context_set_surrounding"> <doc xml:space="preserve">Sets surrounding context around the insertion point and preedit string. This function is expected to be called in response to the GtkIMContext::retrieve_surrounding signal, and will likely have no effect if called at other times.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text surrounding the insertion point, as UTF-8. the preedit string should not be included within @text.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">the length of @text, or -1 if @text is nul-terminated</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="cursor_index" transfer-ownership="none"> <doc xml:space="preserve">the byte index of the insertion cursor within @text.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_use_preedit" c:identifier="gtk_im_context_set_use_preedit"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </instance-parameter> <parameter name="use_preedit" transfer-ownership="none"> <doc xml:space="preserve">whether the IM context should use the preedit string.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="input-hints" writable="1" transfer-ownership="none"> <type name="InputHints"/> </property> <property name="input-purpose" writable="1" transfer-ownership="none"> <type name="InputPurpose"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <glib:signal name="commit" when="last"> <doc xml:space="preserve">The ::commit signal is emitted when a complete input sequence has been entered by the user. This can be a single character immediately after a key press or the final result of preediting.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">the completed character(s) entered by the user</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="delete-surrounding" when="last"> <doc xml:space="preserve">The ::delete-surrounding signal is emitted when the input method needs to delete all or part of the context surrounding the cursor.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal was handled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="offset" transfer-ownership="none"> <doc xml:space="preserve">the character offset from the cursor position of the text to be deleted. A negative value indicates a position before the cursor.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the number of characters to be deleted</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="preedit-changed" when="last"> <doc xml:space="preserve">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 gtk_im_context_get_preedit_string() returns the empty string.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="preedit-end" when="last"> <doc xml:space="preserve">The ::preedit-end signal is emitted when a preediting sequence has been completed or canceled.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="preedit-start" when="last"> <doc xml:space="preserve">The ::preedit-start signal is emitted when a new preediting sequence starts.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="retrieve-surrounding" when="last"> <doc xml:space="preserve">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 gtk_im_context_set_surrounding() method.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal was handled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> </class> <record name="IMContextClass" c:type="GtkIMContextClass" glib:is-gtype-struct-for="IMContext"> <field name="parent_class" readable="0" private="1"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="preedit_start"> <callback name="preedit_start"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> </parameters> </callback> </field> <field name="preedit_end"> <callback name="preedit_end"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> </parameters> </callback> </field> <field name="preedit_changed"> <callback name="preedit_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> </parameters> </callback> </field> <field name="commit"> <callback name="commit"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="str" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="retrieve_surrounding"> <callback name="retrieve_surrounding"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> </parameters> </callback> </field> <field name="delete_surrounding"> <callback name="delete_surrounding"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal was handled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="offset" transfer-ownership="none"> <doc xml:space="preserve">offset from cursor position in chars; a negative value means start before the cursor.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">number of characters to delete.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="set_client_window"> <callback name="set_client_window"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the client window. This may be %NULL to indicate that the previous client window no longer exists.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </callback> </field> <field name="get_preedit_string"> <callback name="get_preedit_string"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="str" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store the retrieved string. The string retrieved must be freed with g_free().</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="attrs" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store the retrieved attribute list. When you are done with this list, you must unreference it with pango_attr_list_unref().</doc> <type name="Pango.AttrList" c:type="PangoAttrList**"/> </parameter> <parameter name="cursor_pos" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store position of cursor (in characters) within the preedit string.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="filter_keypress"> <callback name="filter_keypress"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the input method handled the key event.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the key event</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </callback> </field> <field name="focus_in"> <callback name="focus_in"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> </parameters> </callback> </field> <field name="focus_out"> <callback name="focus_out"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> </parameters> </callback> </field> <field name="reset"> <callback name="reset"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> </parameters> </callback> </field> <field name="set_cursor_location"> <callback name="set_cursor_location"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">new location</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </callback> </field> <field name="set_use_preedit"> <callback name="set_use_preedit"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="use_preedit" transfer-ownership="none"> <doc xml:space="preserve">whether the IM context should use the preedit string.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="set_surrounding"> <callback name="set_surrounding"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text surrounding the insertion point, as UTF-8. the preedit string should not be included within @text.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">the length of @text, or -1 if @text is nul-terminated</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="cursor_index" transfer-ownership="none"> <doc xml:space="preserve">the byte index of the insertion cursor within @text.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="get_surrounding"> <callback name="get_surrounding"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if surrounding text was provided; in this case you must free the result stored in *text.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMContext</doc> <type name="IMContext" c:type="GtkIMContext*"/> </parameter> <parameter name="text" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">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().</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="cursor_index" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store byte index of the insertion cursor within @text.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="IMContextInfo" c:type="GtkIMContextInfo"> <doc xml:space="preserve">Bookkeeping information about a loadable input method.</doc> <field name="context_id" writable="1"> <doc xml:space="preserve">The unique identification string of the input method.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="context_name" writable="1"> <doc xml:space="preserve">The human-readable name of the input method.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="domain" writable="1"> <doc xml:space="preserve">Translation domain to be used with dgettext()</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="domain_dirname" writable="1"> <doc xml:space="preserve">Name of locale directory for use with bindtextdomain()</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="default_locales" writable="1"> <doc xml:space="preserve">A colon-separated list of locales where this input method should be the default. The asterisk â*â sets the default for all locales.</doc> <type name="utf8" c:type="const gchar*"/> </field> </record> <class name="IMContextSimple" c:symbol-prefix="im_context_simple" c:type="GtkIMContextSimple" parent="IMContext" glib:type-name="GtkIMContextSimple" glib:get-type="gtk_im_context_simple_get_type" glib:type-struct="IMContextSimpleClass"> <doc xml:space="preserve">GtkIMContextSimple is a simple input method context supporting table-based input methods. It has a built-in table of compose sequences that is derived from the X11 Compose files. GtkIMContextSimple reads additional compose sequences from the first of the following files that is found: ~/.config/gtk-3.0/Compose, ~/.XCompose, /usr/share/X11/locale/$locale/Compose (for locales that have a nontrivial Compose file). The syntax of these files is described in the Compose(5) manual page. ## Unicode characters GtkIMContextSimple also supports numeric entry of Unicode characters by typing Ctrl-Shift-u, followed by a hexadecimal Unicode codepoint. For example, Ctrl-Shift-u 1 2 3 Enter yields U+0123 LATIN SMALL LETTER G WITH CEDILLA, i.e. ÄŁ. ## Emoji GtkIMContextSimple also supports entry of Emoji by their name. This works by first typing Ctrl-Shift-e, followed by an Emoji name. The following names are supported: - :-) đ - 8-) đ - <3 ⤠- kiss đ - grin đ - joy đ - :-* đ - xD đ - like đ - dislike đ - up đ - v â - ok đ - B-) đ - ;-) đ - ;-P đ - :-p đ - 3( đ - :-( đ - :] đ - :'( đ˘ - :_( đ - :(( đŠ - :o đ¨ - :| đ - 3-) đ - >( đ - >(( đĄ - O:) đ - ;o đ° - 8| đł - 8o đ˛ - :X đˇ - }:) đ</doc> <constructor name="new" c:identifier="gtk_im_context_simple_new"> <doc xml:space="preserve">Creates a new #GtkIMContextSimple.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkIMContextSimple.</doc> <type name="IMContext" c:type="GtkIMContext*"/> </return-value> </constructor> <method name="add_compose_file" c:identifier="gtk_im_context_simple_add_compose_file"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context_simple" transfer-ownership="none"> <type name="IMContextSimple" c:type="GtkIMContextSimple*"/> </instance-parameter> <parameter name="compose_file" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_table" c:identifier="gtk_im_context_simple_add_table" introspectable="0"> <doc xml:space="preserve">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.)</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context_simple" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIMContextSimple</doc> <type name="IMContextSimple" c:type="GtkIMContextSimple*"/> </instance-parameter> <parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">the table</doc> <array zero-terminated="0" c:type="guint16*"> <type name="guint16" c:type="guint16"/> </array> </parameter> <parameter name="max_seq_len" transfer-ownership="none"> <doc xml:space="preserve">Maximum length of a sequence in the table (cannot be greater than #GTK_MAX_COMPOSE_LEN)</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_seqs" transfer-ownership="none"> <doc xml:space="preserve">number of sequences in the table</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <field name="object"> <type name="IMContext" c:type="GtkIMContext"/> </field> <field name="priv" readable="0" private="1"> <type name="IMContextSimplePrivate" c:type="GtkIMContextSimplePrivate*"/> </field> </class> <record name="IMContextSimpleClass" c:type="GtkIMContextSimpleClass" glib:is-gtype-struct-for="IMContextSimple"> <field name="parent_class"> <type name="IMContextClass" c:type="GtkIMContextClass"/> </field> </record> <record name="IMContextSimplePrivate" c:type="GtkIMContextSimplePrivate" disguised="1"> </record> <class name="IMMulticontext" c:symbol-prefix="im_multicontext" c:type="GtkIMMulticontext" parent="IMContext" glib:type-name="GtkIMMulticontext" glib:get-type="gtk_im_multicontext_get_type" glib:type-struct="IMMulticontextClass"> <constructor name="new" c:identifier="gtk_im_multicontext_new"> <doc xml:space="preserve">Creates a new #GtkIMMulticontext.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkIMMulticontext.</doc> <type name="IMContext" c:type="GtkIMContext*"/> </return-value> </constructor> <method name="append_menuitems" c:identifier="gtk_im_multicontext_append_menuitems" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Add menuitems for various available input methods to a menu; the menuitems, when selected, will switch the input method for the context and the global default input method.</doc> <doc-deprecated xml:space="preserve">It is better to use the system-wide input method framework for changing input methods. Modern desktop shells offer on-screen displays for this that can triggered with a keyboard shortcut, e.g. Super-Space.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMMulticontext</doc> <type name="IMMulticontext" c:type="GtkIMMulticontext*"/> </instance-parameter> <parameter name="menushell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> </parameters> </method> <method name="get_context_id" c:identifier="gtk_im_multicontext_get_context_id" version="2.16"> <doc xml:space="preserve">Gets the id of the currently active slave of the @context.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the id of the currently active slave</doc> <type name="utf8" c:type="const char*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMMulticontext</doc> <type name="IMMulticontext" c:type="GtkIMMulticontext*"/> </instance-parameter> </parameters> </method> <method name="set_context_id" c:identifier="gtk_im_multicontext_set_context_id" version="2.16"> <doc xml:space="preserve">Sets the context id for @context. This causes the currently active slave of @context to be replaced by the slave corresponding to the new context id.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIMMulticontext</doc> <type name="IMMulticontext" c:type="GtkIMMulticontext*"/> </instance-parameter> <parameter name="context_id" transfer-ownership="none"> <doc xml:space="preserve">the id to use</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <field name="object"> <type name="IMContext" c:type="GtkIMContext"/> </field> <field name="priv" readable="0" private="1"> <type name="IMMulticontextPrivate" c:type="GtkIMMulticontextPrivate*"/> </field> </class> <record name="IMMulticontextClass" c:type="GtkIMMulticontextClass" glib:is-gtype-struct-for="IMMulticontext"> <field name="parent_class"> <type name="IMContextClass" c:type="GtkIMContextClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="IMMulticontextPrivate" c:type="GtkIMMulticontextPrivate" disguised="1"> </record> <enumeration name="IMPreeditStyle" deprecated="1" deprecated-version="3.10" glib:type-name="GtkIMPreeditStyle" glib:get-type="gtk_im_preedit_style_get_type" c:type="GtkIMPreeditStyle"> <doc xml:space="preserve">Style for input method preedit. See also #GtkSettings:gtk-im-preedit-style</doc> <member name="nothing" value="0" c:identifier="GTK_IM_PREEDIT_NOTHING" glib:nick="nothing"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="callback" value="1" c:identifier="GTK_IM_PREEDIT_CALLBACK" glib:nick="callback"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="none" value="2" c:identifier="GTK_IM_PREEDIT_NONE" glib:nick="none"> <doc xml:space="preserve">Deprecated</doc> </member> </enumeration> <enumeration name="IMStatusStyle" deprecated="1" deprecated-version="3.10" glib:type-name="GtkIMStatusStyle" glib:get-type="gtk_im_status_style_get_type" c:type="GtkIMStatusStyle"> <doc xml:space="preserve">Style for input method status. See also #GtkSettings:gtk-im-status-style</doc> <member name="nothing" value="0" c:identifier="GTK_IM_STATUS_NOTHING" glib:nick="nothing"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="callback" value="1" c:identifier="GTK_IM_STATUS_CALLBACK" glib:nick="callback"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="none" value="2" c:identifier="GTK_IM_STATUS_NONE" glib:nick="none"> <doc xml:space="preserve">Deprecated</doc> </member> </enumeration> <constant name="INPUT_ERROR" value="-1" c:type="GTK_INPUT_ERROR"> <doc xml:space="preserve">Constant to return from a signal handler for the #GtkSpinButton::input signal in case of conversion failure.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="INTERFACE_AGE" value="30" c:type="GTK_INTERFACE_AGE"> <doc xml:space="preserve">Like gtk_get_interface_age(), but from the headers used at application compile time, rather than from the library linked against at application run time.</doc> <type name="gint" c:type="gint"/> </constant> <class name="IconFactory" c:symbol-prefix="icon_factory" c:type="GtkIconFactory" parent="GObject.Object" glib:type-name="GtkIconFactory" glib:get-type="gtk_icon_factory_get_type" glib:type-struct="IconFactoryClass"> <doc xml:space="preserve">An icon factory manages a collection of #GtkIconSet; a #GtkIconSet manages a set of variants of a particular icon (i.e. a #GtkIconSet contains variants for different sizes and widget states). Icons in an icon factory are named by a stock ID, which is a simple string identifying the icon. Each #GtkStyle has a list of #GtkIconFactory derived from the current theme; those icon factories are consulted first when searching for an icon. If the theme doesnât set a particular icon, GTK+ looks for the icon in a list of default icon factories, maintained by gtk_icon_factory_add_default() and gtk_icon_factory_remove_default(). Applications with icons should add a default icon factory with their icons, which will allow themes to override the icons for the application. To display an icon, always use gtk_style_lookup_icon_set() on the widget that will display the icon, or the convenience function gtk_widget_render_icon(). These functions take the theme into account when looking up the icon to use for a given stock ID. # GtkIconFactory as GtkBuildable # {#GtkIconFactory-BUILDER-UI} GtkIconFactory supports a custom <sources> element, which can contain multiple <source> elements. The following attributes are allowed: - stock-id The stock id of the source, a string. This attribute is mandatory - filename The filename of the source, a string. This attribute is optional - icon-name The icon name for the source, a string. This attribute is optional. - size Size of the icon, a #GtkIconSize enum value. This attribute is optional. - direction Direction of the source, a #GtkTextDirection enum value. This attribute is optional. - state State of the source, a #GtkStateType enum value. This attribute is optional. ## A #GtkIconFactory UI definition fragment. ## |[ <object class="GtkIconFactory" id="iconfactory1"> <sources> <source stock-id="apple-red" filename="apple-red.png"/> </sources> </object> <object class="GtkWindow" id="window1"> <child> <object class="GtkButton" id="apple_button"> <property name="label">apple-red</property> <property name="use-stock">True</property> </object> </child> </object> ]|</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_icon_factory_new" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkIconFactory. An icon factory manages a collection of #GtkIconSets; a #GtkIconSet manages a set of variants of a particular icon (i.e. a #GtkIconSet contains variants for different sizes and widget states). Icons in an icon factory are named by a stock ID, which is a simple string identifying the icon. Each #GtkStyle has a list of #GtkIconFactorys derived from the current theme; those icon factories are consulted first when searching for an icon. If the theme doesnât set a particular icon, GTK+ looks for the icon in a list of default icon factories, maintained by gtk_icon_factory_add_default() and gtk_icon_factory_remove_default(). Applications with icons should add a default icon factory with their icons, which will allow themes to override the icons for the application.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkIconFactory</doc> <type name="IconFactory" c:type="GtkIconFactory*"/> </return-value> </constructor> <function name="lookup_default" c:identifier="gtk_icon_factory_lookup_default" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks for an icon in the list of default icon factories. For display to the user, you should use gtk_style_lookup_icon_set() on the #GtkStyle for the widget that will display the icon, instead of using this function directly, so that themes are taken into account.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet, or %NULL</doc> <type name="IconSet" c:type="GtkIconSet*"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">an icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <method name="add" c:identifier="gtk_icon_factory_add" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Adds the given @icon_set to the icon factory, under the name @stock_id. @stock_id should be namespaced for your application, e.g. âmyapp-whatever-iconâ. Normally applications create a #GtkIconFactory, then add it to the list of default factories with gtk_icon_factory_add_default(). Then they pass the @stock_id to widgets such as #GtkImage to display the icon. Themes can provide an icon with the same name (such as "myapp-whatever-icon") to override your applicationâs default icons. If an icon already existed in @factory for @stock_id, it is unreferenced and replaced with the new @icon_set.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="factory" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconFactory</doc> <type name="IconFactory" c:type="GtkIconFactory*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">icon set</doc> <type name="IconSet" c:type="GtkIconSet*"/> </parameter> </parameters> </method> <method name="add_default" c:identifier="gtk_icon_factory_add_default" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Adds an icon factory to the list of icon factories searched by gtk_style_lookup_icon_set(). This means that, for example, gtk_image_new_from_stock() will be able to find icons in @factory. There will normally be an icon factory added for each library or application that comes with icons. The default icon factories can be overridden by themes.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="factory" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconFactory</doc> <type name="IconFactory" c:type="GtkIconFactory*"/> </instance-parameter> </parameters> </method> <method name="lookup" c:identifier="gtk_icon_factory_lookup" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up @stock_id in the icon factory, returning an icon set if found, otherwise %NULL. For display to the user, you should use gtk_style_lookup_icon_set() on the #GtkStyle for the widget that will display the icon, instead of using this function directly, so that themes are taken into account.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">icon set of @stock_id.</doc> <type name="IconSet" c:type="GtkIconSet*"/> </return-value> <parameters> <instance-parameter name="factory" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconFactory</doc> <type name="IconFactory" c:type="GtkIconFactory*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">an icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="remove_default" c:identifier="gtk_icon_factory_remove_default" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Removes an icon factory from the list of default icon factories. Not normally used; you might use it for a library that can be unloaded or shut down.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="factory" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconFactory previously added with gtk_icon_factory_add_default()</doc> <type name="IconFactory" c:type="GtkIconFactory*"/> </instance-parameter> </parameters> </method> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="IconFactoryPrivate" c:type="GtkIconFactoryPrivate*"/> </field> </class> <record name="IconFactoryClass" c:type="GtkIconFactoryClass" glib:is-gtype-struct-for="IconFactory"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="IconFactoryPrivate" c:type="GtkIconFactoryPrivate" disguised="1"> </record> <class name="IconInfo" c:symbol-prefix="icon_info" c:type="GtkIconInfo" parent="GObject.Object" glib:type-name="GtkIconInfo" glib:get-type="gtk_icon_info_get_type" glib:type-struct="IconInfoClass"> <doc xml:space="preserve">Contains information found when looking up an icon in an icon theme.</doc> <constructor name="new_for_pixbuf" c:identifier="gtk_icon_info_new_for_pixbuf" version="2.14"> <doc xml:space="preserve">Creates a #GtkIconInfo for a #GdkPixbuf.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </return-value> <parameters> <parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">the pixbuf to wrap in a #GtkIconInfo</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </constructor> <method name="copy" c:identifier="gtk_icon_info_copy" version="2.4" introspectable="0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Make a copy of a #GtkIconInfo.</doc> <doc-deprecated xml:space="preserve">Use g_object_ref()</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">the new GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_icon_info_free" version="2.4" introspectable="0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Free a #GtkIconInfo and associated information</doc> <doc-deprecated xml:space="preserve">Use g_object_unref()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="get_attach_points" c:identifier="gtk_icon_info_get_attach_points" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">This function is deprecated and always returns %FALSE.</doc> <doc-deprecated xml:space="preserve">Attachment points are deprecated</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="points" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store pointer to an array of points, or %NULL free the array of points with g_free().</doc> <array length="1" zero-terminated="0" c:type="GdkPoint**"> <type name="Gdk.Point" c:type="GdkPoint*"/> </array> </parameter> <parameter name="n_points" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the number of points in @points, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_base_scale" c:identifier="gtk_icon_info_get_base_scale" version="3.10"> <doc xml:space="preserve">Gets the base scale for the icon. The base scale is a scale for the icon that was specified by the icon theme creator. For instance an icon drawn for a high-dpi screen with window scale 2 for a base size of 32 will be 64 pixels tall and have a base scale of 2.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the base scale</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="get_base_size" c:identifier="gtk_icon_info_get_base_size" version="2.4"> <doc xml:space="preserve">Gets the base size for the icon. The base size is a size for the icon that was specified by the icon theme creator. This may be different than the actual size of image; an example of this is small emblem icons that can be attached to a larger icon. These icons will be given the same base size as the larger icons to which they are attached. Note that for scaled icons the base size does not include the base scale.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the base size, or 0, if no base size is known for the icon.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="get_builtin_pixbuf" c:identifier="gtk_icon_info_get_builtin_pixbuf" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the built-in image for this icon, if any. To allow GTK+ to use built in icon images, you must pass the %GTK_ICON_LOOKUP_USE_BUILTIN to gtk_icon_theme_lookup_icon().</doc> <doc-deprecated xml:space="preserve">This function is deprecated, use gtk_icon_theme_add_resource_path() instead of builtin icons.</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the built-in image pixbuf, or %NULL. No extra reference is added to the returned pixbuf, so if you want to keep it around, you must use g_object_ref(). The returned image must not be modified.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="get_display_name" c:identifier="gtk_icon_info_get_display_name" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">This function is deprecated and always returns %NULL.</doc> <doc-deprecated xml:space="preserve">Display names are deprecated</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%NULL</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="get_embedded_rect" c:identifier="gtk_icon_info_get_embedded_rect" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">This function is deprecated and always returns %FALSE.</doc> <doc-deprecated xml:space="preserve">Embedded rectangles are deprecated</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="rectangle" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">#GdkRectangle in which to store embedded rectangle coordinates; coordinates are only stored when this function returns %TRUE.</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_filename" c:identifier="gtk_icon_info_get_filename" version="2.4"> <doc xml:space="preserve">Gets the filename for the icon. If the %GTK_ICON_LOOKUP_USE_BUILTIN flag was passed to gtk_icon_theme_lookup_icon(), there may be no filename if a builtin icon is returned; in this case, you should use gtk_icon_info_get_builtin_pixbuf().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the filename for the icon, or %NULL if gtk_icon_info_get_builtin_pixbuf() should be used instead. The return value is owned by GTK+ and should not be modified or freed.</doc> <type name="filename" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="is_symbolic" c:identifier="gtk_icon_info_is_symbolic" version="3.12"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the icon is symbolic, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="load_icon" c:identifier="gtk_icon_info_load_icon" version="2.4" throws="1"> <doc xml:space="preserve">Renders an icon previously looked up in an icon theme using gtk_icon_theme_lookup_icon(); the size will be based on the size passed to gtk_icon_theme_lookup_icon(). Note that the resulting pixbuf may not be exactly this size; an icon theme may have icons that differ slightly from their nominal sizes, and in addition GTK+ will avoid scaling icons that it considers sufficiently close to the requested size or for which the source image would have to be scaled up too far. (This maintains sharpness.). This behaviour can be changed by passing the %GTK_ICON_LOOKUP_FORCE_SIZE flag when obtaining the #GtkIconInfo. If this flag has been specified, the pixbuf returned by this function will be scaled to the exact size.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo from gtk_icon_theme_lookup_icon()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> </parameters> </method> <method name="load_icon_async" c:identifier="gtk_icon_info_load_icon_async" version="3.8"> <doc xml:space="preserve">Asynchronously load, render and scale an icon previously looked up from the icon theme using gtk_icon_theme_lookup_icon(). For more details, see gtk_icon_info_load_icon() which is the synchronous version of this call.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo from gtk_icon_theme_lookup_icon()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc> <type name="Gio.Cancellable" c:type="GCancellable*"/> </parameter> <parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="2"> <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc> <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the data to pass to callback function</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="load_icon_finish" c:identifier="gtk_icon_info_load_icon_finish" version="3.8" throws="1"> <doc xml:space="preserve">Finishes an async icon load, see gtk_icon_info_load_icon_async().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo from gtk_icon_theme_lookup_icon()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="res" transfer-ownership="none"> <doc xml:space="preserve">a #GAsyncResult</doc> <type name="Gio.AsyncResult" c:type="GAsyncResult*"/> </parameter> </parameters> </method> <method name="load_surface" c:identifier="gtk_icon_info_load_surface" version="3.10" throws="1"> <doc xml:space="preserve">Renders an icon previously looked up in an icon theme using gtk_icon_theme_lookup_icon(); the size will be based on the size passed to gtk_icon_theme_lookup_icon(). Note that the resulting surface may not be exactly this size; an icon theme may have icons that differ slightly from their nominal sizes, and in addition GTK+ will avoid scaling icons that it considers sufficiently close to the requested size or for which the source image would have to be scaled up too far. (This maintains sharpness.). This behaviour can be changed by passing the %GTK_ICON_LOOKUP_FORCE_SIZE flag when obtaining the #GtkIconInfo. If this flag has been specified, the pixbuf returned by this function will be scaled to the exact size.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use cairo_surface_destroy() to release your reference to the icon.</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo from gtk_icon_theme_lookup_icon()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="for_window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GdkWindow to optimize drawing for, or %NULL</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="load_symbolic" c:identifier="gtk_icon_info_load_symbolic" version="3.0" throws="1"> <doc xml:space="preserve">Loads an icon, modifying it to match the system colours for the foreground, success, warning and error colors provided. If the icon is not a symbolic one, the function will return the result from gtk_icon_info_load_icon(). This allows loading symbolic icons that will match the system theme. Unless you are implementing a widget, you will want to use g_themed_icon_new_with_default_fallbacks() to load the icon. As implementation details, the icon loaded needs to be of SVG type, contain the âsymbolicâ term as the last component of the icon name, and use the âfgâ, âsuccessâ, âwarningâ and âerrorâ CSS styles in the SVG file itself. See the [Symbolic Icons Specification](http://www.freedesktop.org/wiki/SymbolicIcons) for more information about symbolic icons.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GdkPixbuf representing the loaded icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="fg" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA representing the foreground color of the icon</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="success_color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkRGBA representing the warning color of the icon or %NULL to use the default color</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="warning_color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkRGBA representing the warning color of the icon or %NULL to use the default color</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="error_color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkRGBA representing the error color of the icon or %NULL to use the default color (allow-none)</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="was_symbolic" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a #gboolean, returns whether the loaded icon was a symbolic one and whether the @fg color was applied to it.</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> </parameters> </method> <method name="load_symbolic_async" c:identifier="gtk_icon_info_load_symbolic_async" version="3.8"> <doc xml:space="preserve">Asynchronously load, render and scale a symbolic icon previously looked up from the icon theme using gtk_icon_theme_lookup_icon(). For more details, see gtk_icon_info_load_symbolic() which is the synchronous version of this call.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo from gtk_icon_theme_lookup_icon()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="fg" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA representing the foreground color of the icon</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="success_color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkRGBA representing the warning color of the icon or %NULL to use the default color</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="warning_color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkRGBA representing the warning color of the icon or %NULL to use the default color</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="error_color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkRGBA representing the error color of the icon or %NULL to use the default color (allow-none)</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc> <type name="Gio.Cancellable" c:type="GCancellable*"/> </parameter> <parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="6"> <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc> <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the data to pass to callback function</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="load_symbolic_finish" c:identifier="gtk_icon_info_load_symbolic_finish" version="3.8" throws="1"> <doc xml:space="preserve">Finishes an async icon load, see gtk_icon_info_load_symbolic_async().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo from gtk_icon_theme_lookup_icon()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="res" transfer-ownership="none"> <doc xml:space="preserve">a #GAsyncResult</doc> <type name="Gio.AsyncResult" c:type="GAsyncResult*"/> </parameter> <parameter name="was_symbolic" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a #gboolean, returns whether the loaded icon was a symbolic one and whether the @fg color was applied to it.</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> </parameters> </method> <method name="load_symbolic_for_context" c:identifier="gtk_icon_info_load_symbolic_for_context" version="3.0" throws="1"> <doc xml:space="preserve">Loads an icon, modifying it to match the system colors for the foreground, success, warning and error colors provided. If the icon is not a symbolic one, the function will return the result from gtk_icon_info_load_icon(). This function uses the regular foreground color and the symbolic colors with the names âsuccess_colorâ, âwarning_colorâ and âerror_colorâ from the context. This allows loading symbolic icons that will match the system theme. See gtk_icon_info_load_symbolic() for more details.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GdkPixbuf representing the loaded icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="was_symbolic" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a #gboolean, returns whether the loaded icon was a symbolic one and whether the @fg color was applied to it.</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> </parameters> </method> <method name="load_symbolic_for_context_async" c:identifier="gtk_icon_info_load_symbolic_for_context_async" version="3.8"> <doc xml:space="preserve">Asynchronously load, render and scale a symbolic icon previously looked up from the icon theme using gtk_icon_theme_lookup_icon(). For more details, see gtk_icon_info_load_symbolic_for_context() which is the synchronous version of this call.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo from gtk_icon_theme_lookup_icon()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc> <type name="Gio.Cancellable" c:type="GCancellable*"/> </parameter> <parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="3"> <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc> <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the data to pass to callback function</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="load_symbolic_for_context_finish" c:identifier="gtk_icon_info_load_symbolic_for_context_finish" version="3.8" throws="1"> <doc xml:space="preserve">Finishes an async icon load, see gtk_icon_info_load_symbolic_for_context_async().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo from gtk_icon_theme_lookup_icon()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="res" transfer-ownership="none"> <doc xml:space="preserve">a #GAsyncResult</doc> <type name="Gio.AsyncResult" c:type="GAsyncResult*"/> </parameter> <parameter name="was_symbolic" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a #gboolean, returns whether the loaded icon was a symbolic one and whether the @fg color was applied to it.</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> </parameters> </method> <method name="load_symbolic_for_style" c:identifier="gtk_icon_info_load_symbolic_for_style" version="3.0" deprecated="1" deprecated-version="3.0" throws="1"> <doc xml:space="preserve">Loads an icon, modifying it to match the system colours for the foreground, success, warning and error colors provided. If the icon is not a symbolic one, the function will return the result from gtk_icon_info_load_icon(). This allows loading symbolic icons that will match the system theme. See gtk_icon_info_load_symbolic() for more details.</doc> <doc-deprecated xml:space="preserve">Use gtk_icon_info_load_symbolic_for_context() instead</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GdkPixbuf representing the loaded icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle to take the colors from</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the widget state to use for colors</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="was_symbolic" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a #gboolean, returns whether the loaded icon was a symbolic one and whether the @fg color was applied to it.</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> </parameters> </method> <method name="set_raw_coordinates" c:identifier="gtk_icon_info_set_raw_coordinates" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets whether the coordinates returned by gtk_icon_info_get_embedded_rect() and gtk_icon_info_get_attach_points() should be returned in their original form as specified in the icon theme, instead of scaled appropriately for the pixbuf returned by gtk_icon_info_load_icon(). Raw coordinates are somewhat strange; they are specified to be with respect to the unscaled pixmap for PNG and XPM icons, but for SVG icons, they are in a 1000x1000 coordinate space that is scaled to the final size of the icon. You can determine if the icon is an SVG icon by using gtk_icon_info_get_filename(), and seeing if it is non-%NULL and ends in â.svgâ. This function is provided primarily to allow compatibility wrappers for older API's, and is not expected to be useful for applications.</doc> <doc-deprecated xml:space="preserve">Embedded rectangles and attachment points are deprecated</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconInfo</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </instance-parameter> <parameter name="raw_coordinates" transfer-ownership="none"> <doc xml:space="preserve">whether the coordinates of embedded rectangles and attached points should be returned in their original (unscaled) form.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> </class> <record name="IconInfoClass" c:type="GtkIconInfoClass" disguised="1" glib:is-gtype-struct-for="IconInfo"> </record> <bitfield name="IconLookupFlags" glib:type-name="GtkIconLookupFlags" glib:get-type="gtk_icon_lookup_flags_get_type" c:type="GtkIconLookupFlags"> <doc xml:space="preserve">Used to specify options for gtk_icon_theme_lookup_icon()</doc> <member name="no_svg" value="1" c:identifier="GTK_ICON_LOOKUP_NO_SVG" glib:nick="no-svg"> <doc xml:space="preserve">Never get SVG icons, even if gdk-pixbuf supports them. Cannot be used together with %GTK_ICON_LOOKUP_FORCE_SVG.</doc> </member> <member name="force_svg" value="2" c:identifier="GTK_ICON_LOOKUP_FORCE_SVG" glib:nick="force-svg"> <doc xml:space="preserve">Get SVG icons, even if gdk-pixbuf doesnât support them. Cannot be used together with %GTK_ICON_LOOKUP_NO_SVG.</doc> </member> <member name="use_builtin" value="4" c:identifier="GTK_ICON_LOOKUP_USE_BUILTIN" glib:nick="use-builtin"> <doc xml:space="preserve">When passed to gtk_icon_theme_lookup_icon() includes builtin icons as well as files. For a builtin icon, gtk_icon_info_get_filename() is %NULL and you need to call gtk_icon_info_get_builtin_pixbuf().</doc> </member> <member name="generic_fallback" value="8" c:identifier="GTK_ICON_LOOKUP_GENERIC_FALLBACK" glib:nick="generic-fallback"> <doc xml:space="preserve">Try to shorten icon name at '-' characters before looking at inherited themes. This flag is only supported in functions that take a single icon name. For more general fallback, see gtk_icon_theme_choose_icon(). Since 2.12.</doc> </member> <member name="force_size" value="16" c:identifier="GTK_ICON_LOOKUP_FORCE_SIZE" glib:nick="force-size"> <doc xml:space="preserve">Always get the icon scaled to the requested size. Since 2.14.</doc> </member> <member name="force_regular" value="32" c:identifier="GTK_ICON_LOOKUP_FORCE_REGULAR" glib:nick="force-regular"> <doc xml:space="preserve">Try to always load regular icons, even when symbolic icon names are given. Since 3.14.</doc> </member> <member name="force_symbolic" value="64" c:identifier="GTK_ICON_LOOKUP_FORCE_SYMBOLIC" glib:nick="force-symbolic"> <doc xml:space="preserve">Try to always load symbolic icons, even when regular icon names are given. Since 3.14.</doc> </member> <member name="dir_ltr" value="128" c:identifier="GTK_ICON_LOOKUP_DIR_LTR" glib:nick="dir-ltr"> <doc xml:space="preserve">Try to load a variant of the icon for left-to-right text direction. Since 3.14.</doc> </member> <member name="dir_rtl" value="256" c:identifier="GTK_ICON_LOOKUP_DIR_RTL" glib:nick="dir-rtl"> <doc xml:space="preserve">Try to load a variant of the icon for right-to-left text direction. Since 3.14.</doc> </member> </bitfield> <record name="IconSet" c:type="GtkIconSet" glib:type-name="GtkIconSet" glib:get-type="gtk_icon_set_get_type" c:symbol-prefix="icon_set"> <constructor name="new" c:identifier="gtk_icon_set_new" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkIconSet. A #GtkIconSet represents a single icon in various sizes and widget states. It can provide a #GdkPixbuf for a given size and state on request, and automatically caches some of the rendered #GdkPixbuf objects. Normally you would use gtk_widget_render_icon_pixbuf() instead of using #GtkIconSet directly. The one case where youâd use #GtkIconSet is to create application-specific icon sets to place in a #GtkIconFactory.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </return-value> </constructor> <constructor name="new_from_pixbuf" c:identifier="gtk_icon_set_new_from_pixbuf" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkIconSet with @pixbuf as the default/fallback source image. If you donât add any additional #GtkIconSource to the icon set, all variants of the icon will be created from @pixbuf, using scaling, pixelation, etc. as required to adjust the icon size or make the icon look insensitive/prelighted.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </return-value> <parameters> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">a #GdkPixbuf</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </constructor> <method name="add_source" c:identifier="gtk_icon_set_add_source" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Icon sets have a list of #GtkIconSource, which they use as base icons for rendering icons in different states and sizes. Icons are scaled, made to look insensitive, etc. in gtk_icon_set_render_icon(), but #GtkIconSet needs base images to work with. The base images and when to use them are described by a #GtkIconSource. This function copies @source, so you can reuse the same source immediately without affecting the icon set. An example of when youâd use this function: a web browserâs "Back to Previous Page" icon might point in a different direction in Hebrew and in English; it might look different when insensitive; and it might change size depending on toolbar mode (small/large icons). So a single icon set would contain all those variants of the icon, and you might add a separate source for each one. You should nearly always add a âdefaultâ icon source with all fields wildcarded, which will be used as a fallback if no more specific source matches. #GtkIconSet always prefers more specific icon sources to more generic icon sources. The order in which you add the sources to the icon set does not matter. gtk_icon_set_new_from_pixbuf() creates a new icon set with a default icon source based on the given pixbuf.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </instance-parameter> <parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </parameter> </parameters> </method> <method name="copy" c:identifier="gtk_icon_set_copy" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Copies @icon_set by value.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkIconSet identical to the first.</doc> <type name="IconSet" c:type="GtkIconSet*"/> </return-value> <parameters> <instance-parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </instance-parameter> </parameters> </method> <method name="get_sizes" c:identifier="gtk_icon_set_get_sizes" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains a list of icon sizes this icon set can render. The returned array must be freed with g_free().</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </instance-parameter> <parameter name="sizes" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for array of sizes (#GtkIconSize)</doc> <array length="1" zero-terminated="0" c:type="GtkIconSize**"> <type name="gint" c:type="GtkIconSize*"/> </array> </parameter> <parameter name="n_sizes" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store number of elements in returned array</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="ref" c:identifier="gtk_icon_set_ref" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Increments the reference count on @icon_set.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">@icon_set.</doc> <type name="IconSet" c:type="GtkIconSet*"/> </return-value> <parameters> <instance-parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet.</doc> <type name="IconSet" c:type="GtkIconSet*"/> </instance-parameter> </parameters> </method> <method name="render_icon" c:identifier="gtk_icon_set_render_icon" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Renders an icon using gtk_style_render_icon(). In most cases, gtk_widget_render_icon() is better, since it automatically provides most of the arguments from the current widget settings. This function never returns %NULL; if the icon canât be rendered (perhaps because an image file fails to load), a default "missing image" icon will be returned instead.</doc> <doc-deprecated xml:space="preserve">Use gtk_icon_set_render_icon_pixbuf() instead</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GdkPixbuf to be displayed</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </instance-parameter> <parameter name="style" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkStyle associated with @widget, or %NULL</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">text direction</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">widget state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">icon size (#GtkIconSize). A size of `(GtkIconSize)-1` means render at the size of the source and donât scale.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">widget that will display the icon, or %NULL. The only use that is typically made of this is to determine the appropriate #GdkScreen.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">detail to pass to the theme engine, or %NULL. Note that passing a detail of anything but %NULL will disable caching.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="render_icon_pixbuf" c:identifier="gtk_icon_set_render_icon_pixbuf" version="3.0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Renders an icon using gtk_render_icon_pixbuf(). In most cases, gtk_widget_render_icon_pixbuf() is better, since it automatically provides most of the arguments from the current widget settings. This function never returns %NULL; if the icon canât be rendered (perhaps because an image file fails to load), a default "missing image" icon will be returned instead.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GdkPixbuf to be displayed</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">icon size (#GtkIconSize). A size of `(GtkIconSize)-1` means render at the size of the source and donât scale.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="render_icon_surface" c:identifier="gtk_icon_set_render_icon_surface" version="3.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Renders an icon using gtk_render_icon_pixbuf() and converts it to a cairo surface. This function never returns %NULL; if the icon canât be rendered (perhaps because an image file fails to load), a default "missing image" icon will be returned instead.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #cairo_surface_t to be displayed</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </return-value> <parameters> <instance-parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">icon size (#GtkIconSize). A size of `(GtkIconSize)-1` means render at the size of the source and donât scale.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">the window scale to render for</doc> <type name="gint" c:type="int"/> </parameter> <parameter name="for_window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GdkWindow to optimize drawing for, or %NULL</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="unref" c:identifier="gtk_icon_set_unref" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Decrements the reference count on @icon_set, and frees memory if the reference count reaches 0.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </instance-parameter> </parameters> </method> </record> <enumeration name="IconSize" glib:type-name="GtkIconSize" glib:get-type="gtk_icon_size_get_type" c:type="GtkIconSize"> <doc xml:space="preserve">Built-in stock icon sizes.</doc> <member name="invalid" value="0" c:identifier="GTK_ICON_SIZE_INVALID" glib:nick="invalid"> <doc xml:space="preserve">Invalid size.</doc> </member> <member name="menu" value="1" c:identifier="GTK_ICON_SIZE_MENU" glib:nick="menu"> <doc xml:space="preserve">Size appropriate for menus (16px).</doc> </member> <member name="small_toolbar" value="2" c:identifier="GTK_ICON_SIZE_SMALL_TOOLBAR" glib:nick="small-toolbar"> <doc xml:space="preserve">Size appropriate for small toolbars (16px).</doc> </member> <member name="large_toolbar" value="3" c:identifier="GTK_ICON_SIZE_LARGE_TOOLBAR" glib:nick="large-toolbar"> <doc xml:space="preserve">Size appropriate for large toolbars (24px)</doc> </member> <member name="button" value="4" c:identifier="GTK_ICON_SIZE_BUTTON" glib:nick="button"> <doc xml:space="preserve">Size appropriate for buttons (16px)</doc> </member> <member name="dnd" value="5" c:identifier="GTK_ICON_SIZE_DND" glib:nick="dnd"> <doc xml:space="preserve">Size appropriate for drag and drop (32px)</doc> </member> <member name="dialog" value="6" c:identifier="GTK_ICON_SIZE_DIALOG" glib:nick="dialog"> <doc xml:space="preserve">Size appropriate for dialogs (48px)</doc> </member> <function name="from_name" c:identifier="gtk_icon_size_from_name" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up the icon size associated with @name.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name to look up.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="get_name" c:identifier="gtk_icon_size_get_name" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the canonical name of the given icon size. The returned string is statically allocated and should not be freed.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name of the given icon size.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSize.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </function> <function name="lookup" c:identifier="gtk_icon_size_lookup"> <doc xml:space="preserve">Obtains the pixel size of a semantic icon size @size: #GTK_ICON_SIZE_MENU, #GTK_ICON_SIZE_BUTTON, etc. This function isnât normally needed, gtk_icon_theme_load_icon() is the usual way to get an icon for rendering, then just look at the size of the rendered pixbuf. The rendered pixbuf may not even correspond to the width/height returned by gtk_icon_size_lookup(), because themes are free to render the pixbuf however they like, including changing the usual size.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @size was a valid size</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">an icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store icon width</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store icon height</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </function> <function name="lookup_for_settings" c:identifier="gtk_icon_size_lookup_for_settings" version="2.2" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains the pixel size of a semantic icon size, possibly modified by user preferences for a particular #GtkSettings. Normally @size would be #GTK_ICON_SIZE_MENU, #GTK_ICON_SIZE_BUTTON, etc. This function isnât normally needed, gtk_widget_render_icon_pixbuf() is the usual way to get an icon for rendering, then just look at the size of the rendered pixbuf. The rendered pixbuf may not even correspond to the width/height returned by gtk_icon_size_lookup(), because themes are free to render the pixbuf however they like, including changing the usual size.</doc> <doc-deprecated xml:space="preserve">Use gtk_icon_size_lookup() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @size was a valid size</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSettings object, used to determine which set of user preferences to used.</doc> <type name="Settings" c:type="GtkSettings*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">an icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store icon width</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store icon height</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </function> <function name="register" c:identifier="gtk_icon_size_register" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Registers a new icon size, along the same lines as #GTK_ICON_SIZE_MENU, etc. Returns the integer value for the size.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">integer value representing the size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of the icon size</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the icon width</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the icon height</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="register_alias" c:identifier="gtk_icon_size_register_alias" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Registers @alias as another name for @target. So calling gtk_icon_size_from_name() with @alias as argument will return @target.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="alias" transfer-ownership="none"> <doc xml:space="preserve">an alias for @target</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">an existing icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </function> </enumeration> <record name="IconSource" c:type="GtkIconSource" glib:type-name="GtkIconSource" glib:get-type="gtk_icon_source_get_type" c:symbol-prefix="icon_source"> <constructor name="new" c:identifier="gtk_icon_source_new" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkIconSource. A #GtkIconSource contains a #GdkPixbuf (or image filename) that serves as the base image for one or more of the icons in a #GtkIconSet, along with a specification for which icons in the icon set will be based on that pixbuf or image file. An icon set contains a set of icons that represent âthe sameâ logical concept in different states, different global text directions, and different sizes. So for example a web browserâs âBack to Previous Pageâ icon might point in a different direction in Hebrew and in English; it might look different when insensitive; and it might change size depending on toolbar mode (small/large icons). So a single icon set would contain all those variants of the icon. #GtkIconSet contains a list of #GtkIconSource from which it can derive specific icon variants in the set. In the simplest case, #GtkIconSet contains one source pixbuf from which it derives all variants. The convenience function gtk_icon_set_new_from_pixbuf() handles this case; if you only have one source pixbuf, just use that function. If you want to use a different base pixbuf for different icon variants, you create multiple icon sources, mark which variants theyâll be used to create, and add them to the icon set with gtk_icon_set_add_source(). By default, the icon source has all parameters wildcarded. That is, the icon source will be used as the base icon for any desired text direction, widget state, or icon size.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </return-value> </constructor> <method name="copy" c:identifier="gtk_icon_source_copy" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a copy of @source; mostly useful for language bindings.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_icon_source_free" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Frees a dynamically-allocated icon source, along with its filename, size, and pixbuf fields if those are not %NULL.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_direction" c:identifier="gtk_icon_source_get_direction" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains the text direction this icon source applies to. The return value is only useful/meaningful if the text direction is not wildcarded.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">text direction this source matches</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_direction_wildcarded" c:identifier="gtk_icon_source_get_direction_wildcarded" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the value set by gtk_icon_source_set_direction_wildcarded().</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if this icon source is a base for any text direction variant</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_filename" c:identifier="gtk_icon_source_get_filename" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Retrieves the source filename, or %NULL if none is set. The filename is not a copy, and should not be modified or expected to persist beyond the lifetime of the icon source.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">image filename. This string must not be modified or freed.</doc> <type name="filename" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_icon_name" c:identifier="gtk_icon_source_get_icon_name" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Retrieves the source icon name, or %NULL if none is set. The icon_name is not a copy, and should not be modified or expected to persist beyond the lifetime of the icon source.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">icon name. This string must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_pixbuf" c:identifier="gtk_icon_source_get_pixbuf" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Retrieves the source pixbuf, or %NULL if none is set. In addition, if a filename source is in use, this function in some cases will return the pixbuf from loaded from the filename. This is, for example, true for the GtkIconSource passed to the #GtkStyle render_icon() virtual function. The reference count on the pixbuf is not incremented.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">source pixbuf</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_size" c:identifier="gtk_icon_source_get_size" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains the icon size this source applies to. The return value is only useful/meaningful if the icon size is not wildcarded.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">icon size (#GtkIconSize) this source matches.</doc> <type name="gint" c:type="GtkIconSize"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_size_wildcarded" c:identifier="gtk_icon_source_get_size_wildcarded" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the value set by gtk_icon_source_set_size_wildcarded().</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if this icon source is a base for any icon size variant</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_state" c:identifier="gtk_icon_source_get_state" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains the widget state this icon source applies to. The return value is only useful/meaningful if the widget state is not wildcarded.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">widget state this source matches</doc> <type name="StateType" c:type="GtkStateType"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="get_state_wildcarded" c:identifier="gtk_icon_source_get_state_wildcarded" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the value set by gtk_icon_source_set_state_wildcarded().</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if this icon source is a base for any widget state variant</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </instance-parameter> </parameters> </method> <method name="set_direction" c:identifier="gtk_icon_source_set_direction" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the text direction this icon source is intended to be used with. Setting the text direction on an icon source makes no difference if the text direction is wildcarded. Therefore, you should usually call gtk_icon_source_set_direction_wildcarded() to un-wildcard it in addition to calling this function.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">text direction this source applies to</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> </parameters> </method> <method name="set_direction_wildcarded" c:identifier="gtk_icon_source_set_direction_wildcarded" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">If the text direction is wildcarded, this source can be used as the base image for an icon in any #GtkTextDirection. If the text direction is not wildcarded, then the text direction the icon source applies to should be set with gtk_icon_source_set_direction(), and the icon source will only be used with that text direction. #GtkIconSet prefers non-wildcarded sources (exact matches) over wildcarded sources, and will use an exact match when possible.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to wildcard the text direction</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_filename" c:identifier="gtk_icon_source_set_filename" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the name of an image file to use as a base image when creating icon variants for #GtkIconSet. The filename must be absolute.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">image file to use</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_icon_name" c:identifier="gtk_icon_source_set_icon_name" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the name of an icon to look up in the current icon theme to use as a base image when creating icon variants for #GtkIconSet.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">name of icon to use</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_pixbuf" c:identifier="gtk_icon_source_set_pixbuf" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets a pixbuf to use as a base image when creating icon variants for #GtkIconSet.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">pixbuf to use as a source</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_size" c:identifier="gtk_icon_source_set_size" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the icon size this icon source is intended to be used with. Setting the icon size on an icon source makes no difference if the size is wildcarded. Therefore, you should usually call gtk_icon_source_set_size_wildcarded() to un-wildcard it in addition to calling this function.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">icon size (#GtkIconSize) this source applies to</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_size_wildcarded" c:identifier="gtk_icon_source_set_size_wildcarded" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">If the icon size is wildcarded, this source can be used as the base image for an icon of any size. If the size is not wildcarded, then the size the source applies to should be set with gtk_icon_source_set_size() and the icon source will only be used with that specific size. #GtkIconSet prefers non-wildcarded sources (exact matches) over wildcarded sources, and will use an exact match when possible. #GtkIconSet will normally scale wildcarded source images to produce an appropriate icon at a given size, but will not change the size of source images that match exactly.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to wildcard the widget state</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_state" c:identifier="gtk_icon_source_set_state" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the widget state this icon source is intended to be used with. Setting the widget state on an icon source makes no difference if the state is wildcarded. Therefore, you should usually call gtk_icon_source_set_state_wildcarded() to un-wildcard it in addition to calling this function.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">widget state this source applies to</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> </parameters> </method> <method name="set_state_wildcarded" c:identifier="gtk_icon_source_set_state_wildcarded" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">If the widget state is wildcarded, this source can be used as the base image for an icon in any #GtkStateType. If the widget state is not wildcarded, then the state the source applies to should be set with gtk_icon_source_set_state() and the icon source will only be used with that specific state. #GtkIconSet prefers non-wildcarded sources (exact matches) over wildcarded sources, and will use an exact match when possible. #GtkIconSet will normally transform wildcarded source images to produce an appropriate icon for a given state, for example lightening an image on prelight, but will not modify source images that match exactly.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSource</doc> <type name="IconSource" c:type="GtkIconSource*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to wildcard the widget state</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> </record> <class name="IconTheme" c:symbol-prefix="icon_theme" c:type="GtkIconTheme" parent="GObject.Object" glib:type-name="GtkIconTheme" glib:get-type="gtk_icon_theme_get_type" glib:type-struct="IconThemeClass"> <doc xml:space="preserve">#GtkIconTheme provides a facility for looking up icons by name and size. The main reason for using a name rather than simply providing a filename is to allow different icons to be used depending on what âicon themeâ is selected by the user. The operation of icon themes on Linux and Unix follows the [Icon Theme Specification](http://www.freedesktop.org/Standards/icon-theme-spec) There is a fallback icon theme, named `hicolor`, where applications should install their icons, but additional icon themes can be installed as operating system vendors and users choose. Named icons are similar to the deprecated [Stock Items][gtkstock], and the distinction between the two may be a bit confusing. A few things to keep in mind: - Stock images usually are used in conjunction with [Stock Items][gtkstock], such as %GTK_STOCK_OK or %GTK_STOCK_OPEN. Named icons are easier to set up and therefore are more useful for new icons that an application wants to add, such as application icons or window icons. - Stock images can only be loaded at the symbolic sizes defined by the #GtkIconSize enumeration, or by custom sizes defined by gtk_icon_size_register(), while named icons are more flexible and any pixel size can be specified. - Because stock images are closely tied to stock items, and thus to actions in the user interface, stock images may come in multiple variants for different widget states or writing directions. A good rule of thumb is that if there is a stock image for what you want to use, use it, otherwise use a named icon. It turns out that internally stock images are generally defined in terms of one or more named icons. (An example of the more than one case is icons that depend on writing direction; %GTK_STOCK_GO_FORWARD uses the two themed icons âgtk-stock-go-forward-ltrâ and âgtk-stock-go-forward-rtlâ.) In many cases, named themes are used indirectly, via #GtkImage or stock items, rather than directly, but looking up icons directly is also simple. The #GtkIconTheme object acts as a database of all the icons in the current theme. You can create new #GtkIconTheme objects, but itâs much more efficient to use the standard icon theme for the #GdkScreen so that the icon information is shared with other people looking up icons. |[<!-- language="C" --> GError *error = NULL; GtkIconTheme *icon_theme; GdkPixbuf *pixbuf; icon_theme = gtk_icon_theme_get_default (); pixbuf = gtk_icon_theme_load_icon (icon_theme, "my-icon-name", // icon name 48, // icon size 0, // flags &error); if (!pixbuf) { g_warning ("Couldnât load icon: %s", error->message); g_error_free (error); } else { // Use the pixbuf g_object_unref (pixbuf); } ]|</doc> <constructor name="new" c:identifier="gtk_icon_theme_new" version="2.4"> <doc xml:space="preserve">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 gtk_icon_theme_get_default() or gtk_icon_theme_get_for_screen() rather than creating a new icon theme object for scratch.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the newly created #GtkIconTheme object.</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </return-value> </constructor> <function name="add_builtin_icon" c:identifier="gtk_icon_theme_add_builtin_icon" version="2.4" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Registers a built-in icon for icon theme lookups. The idea of built-in icons is to allow an application or library that uses themed icons to function requiring files to be present in the file system. For instance, the default images for all of GTK+âs stock icons are registered as built-icons. In general, if you use gtk_icon_theme_add_builtin_icon() you should also install the icon in the icon theme, so that the icon is generally available. This function will generally be used with pixbufs loaded via gdk_pixbuf_new_from_inline().</doc> <doc-deprecated xml:space="preserve">Use gtk_icon_theme_add_resource_path() to add application-specific icons to the icon theme.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the icon to register</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the size in pixels at which to register the icon (different images can be registered for the same icon name at different sizes.)</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">#GdkPixbuf that contains the image to use for @icon_name</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </function> <function name="get_default" c:identifier="gtk_icon_theme_get_default" version="2.4"> <doc xml:space="preserve">Gets the icon theme for the default screen. See gtk_icon_theme_get_for_screen().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A unique #GtkIconTheme associated with the default screen. This icon theme is associated with the screen and can be used as long as the screen is open. Do not ref or unref it.</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </return-value> </function> <function name="get_for_screen" c:identifier="gtk_icon_theme_get_for_screen" version="2.4"> <doc xml:space="preserve">Gets the icon theme object associated with @screen; if this function has not previously been called for the given screen, a new icon theme object will be created and associated with the screen. Icon theme objects are fairly expensive to create, so using this function is usually a better choice than calling than gtk_icon_theme_new() and setting the screen yourself; by using this function a single icon theme object will be shared between users.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A unique #GtkIconTheme associated with the given screen. This icon theme is associated with the screen and can be used as long as the screen is open. Do not ref or unref it.</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </function> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> </parameters> </virtual-method> <method name="add_resource_path" c:identifier="gtk_icon_theme_add_resource_path" version="3.14"> <doc xml:space="preserve">Adds a resource path that will be looked at when looking for icons, similar to search paths. This function should be used to make application-specific icons available as part of the icon theme. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a resource path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="append_search_path" c:identifier="gtk_icon_theme_append_search_path" version="2.4"> <doc xml:space="preserve">Appends a directory to the search path. See gtk_icon_theme_set_search_path().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">directory name to append to the icon path</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="choose_icon" c:identifier="gtk_icon_theme_choose_icon" version="2.12"> <doc xml:space="preserve">Looks up a named icon and returns a #GtkIconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() combines these two steps if all you need is the pixbuf.) If @icon_names contains more than one name, this function tries them all in the given order before falling back to inherited icon themes.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkIconInfo object containing information about the icon, or %NULL if the icon wasnât found.</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_names" transfer-ownership="none"> <doc xml:space="preserve">%NULL-terminated array of icon names to lookup</doc> <array c:type="gchar*"> <type name="utf8" c:type="gchar"/> </array> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">desired icon size</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="choose_icon_for_scale" c:identifier="gtk_icon_theme_choose_icon_for_scale" version="3.10"> <doc xml:space="preserve">Looks up a named icon for a particular window scale and returns a #GtkIconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() combines these two steps if all you need is the pixbuf.) If @icon_names contains more than one name, this function tries them all in the given order before falling back to inherited icon themes.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkIconInfo object containing information about the icon, or %NULL if the icon wasnât found.</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_names" transfer-ownership="none"> <doc xml:space="preserve">%NULL-terminated array of icon names to lookup</doc> <array c:type="gchar*"> <type name="utf8" c:type="gchar"/> </array> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">desired icon size</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">desired scale</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="get_example_icon_name" c:identifier="gtk_icon_theme_get_example_icon_name" version="2.4"> <doc xml:space="preserve">Gets the name of an icon that is representative of the current theme (for instance, to use when presenting a list of themes to the user.)</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the name of an example icon or %NULL. Free with g_free().</doc> <type name="utf8" c:type="char*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> </parameters> </method> <method name="get_icon_sizes" c:identifier="gtk_icon_theme_get_icon_sizes" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">An 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.</doc> <array c:type="gint*"> <type name="gint" c:type="gint"/> </array> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the name of an icon</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_search_path" c:identifier="gtk_icon_theme_get_search_path" version="2.4"> <doc xml:space="preserve">Gets the current search path. See gtk_icon_theme_set_search_path().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve"> location to store a list of icon theme path directories or %NULL. The stored value should be freed with g_strfreev().</doc> <array length="1" zero-terminated="0" c:type="gchar**"> <type name="filename"/> </array> </parameter> <parameter name="n_elements" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store number of elements in @path, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="has_icon" c:identifier="gtk_icon_theme_has_icon" version="2.4"> <doc xml:space="preserve">Checks whether an icon theme includes an icon for a particular name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @icon_theme includes an icon for @icon_name.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the name of an icon</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="list_contexts" c:identifier="gtk_icon_theme_list_contexts" version="2.12"> <doc xml:space="preserve">Gets the list of contexts available within the current hierarchy of icon themes. See gtk_icon_theme_list_icons() for details about contexts.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GList list holding the names of all the contexts in the theme. You must first free each element in the list with g_free(), then free the list itself with g_list_free().</doc> <type name="GLib.List" c:type="GList*"> <type name="utf8"/> </type> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> </parameters> </method> <method name="list_icons" c:identifier="gtk_icon_theme_list_icons" version="2.4"> <doc xml:space="preserve">Lists the icons in the current icon theme. Only a subset of the icons can be listed by providing a context string. The set of values for the context string is system dependent, but will typically include such values as âApplicationsâ and âMimeTypesâ. Contexts are explained in the [Icon Theme Specification](http://www.freedesktop.org/wiki/Specifications/icon-theme-spec). The standard contexts are listed in the [Icon Naming Specification](http://www.freedesktop.org/wiki/Specifications/icon-naming-spec). Also see gtk_icon_theme_list_contexts().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GList list holding the names of all the icons in the theme. You must first free each element in the list with g_free(), then free the list itself with g_list_free().</doc> <type name="GLib.List" c:type="GList*"> <type name="utf8"/> </type> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string identifying a particular type of icon, or %NULL to list all icons.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="load_icon" c:identifier="gtk_icon_theme_load_icon" version="2.4" throws="1"> <doc xml:space="preserve">Looks up an icon in an icon theme, scales it to the given size and renders it into a pixbuf. This is a convenience function; if more details about the icon are needed, use gtk_icon_theme_lookup_icon() followed by gtk_icon_info_load_icon(). Note that you probably want to listen for icon theme changes and update the icon. This is usually done by connecting to the GtkWidget::style-set signal. If for some reason you do not want to update the icon when the icon theme changes, you should consider using gdk_pixbuf_copy() to make a private copy of the pixbuf returned by this function. Otherwise GTK+ may need to keep the old icon theme loaded, which would be a waste of memory.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon. %NULL if the icon isnât found.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the icon to lookup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the desired icon size. The resulting icon may not be exactly this size; see gtk_icon_info_load_icon().</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="load_icon_for_scale" c:identifier="gtk_icon_theme_load_icon_for_scale" version="3.10" throws="1"> <doc xml:space="preserve">Looks up an icon in an icon theme for a particular window scale, scales it to the given size and renders it into a pixbuf. This is a convenience function; if more details about the icon are needed, use gtk_icon_theme_lookup_icon() followed by gtk_icon_info_load_icon(). Note that you probably want to listen for icon theme changes and update the icon. This is usually done by connecting to the GtkWidget::style-set signal. If for some reason you do not want to update the icon when the icon theme changes, you should consider using gdk_pixbuf_copy() to make a private copy of the pixbuf returned by this function. Otherwise GTK+ may need to keep the old icon theme loaded, which would be a waste of memory.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon. %NULL if the icon isnât found.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the icon to lookup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the desired icon size. The resulting icon may not be exactly this size; see gtk_icon_info_load_icon().</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">desired scale</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="load_surface" c:identifier="gtk_icon_theme_load_surface" version="3.10" throws="1"> <doc xml:space="preserve">Looks up an icon in an icon theme for a particular window scale, scales it to the given size and renders it into a cairo surface. This is a convenience function; if more details about the icon are needed, use gtk_icon_theme_lookup_icon() followed by gtk_icon_info_load_surface(). Note that you probably want to listen for icon theme changes and update the icon. This is usually done by connecting to the GtkWidget::style-set signal.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use cairo_surface_destroy() to release your reference to the icon. %NULL if the icon isnât found.</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the icon to lookup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the desired icon size. The resulting icon may not be exactly this size; see gtk_icon_info_load_icon().</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">desired scale</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="for_window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GdkWindow to optimize drawing for, or %NULL</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="lookup_by_gicon" c:identifier="gtk_icon_theme_lookup_by_gicon" version="2.14"> <doc xml:space="preserve">Looks up an icon and returns a #GtkIconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). When rendering on displays with high pixel densities you should not use a @size multiplied by the scaling factor returned by functions like gdk_window_get_scale_factor(). Instead, you should use gtk_icon_theme_lookup_by_gicon_for_scale(), as the assets loaded for a given scaling factor may be different.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkIconInfo containing information about the icon, or %NULL if the icon wasnât found. Unref with g_object_unref()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">the #GIcon to look up</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">desired icon size</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="lookup_by_gicon_for_scale" c:identifier="gtk_icon_theme_lookup_by_gicon_for_scale" version="3.10"> <doc xml:space="preserve">Looks up an icon and returns a #GtkIconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon().</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkIconInfo containing information about the icon, or %NULL if the icon wasnât found. Unref with g_object_unref()</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">the #GIcon to look up</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">desired icon size</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">the desired scale</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="lookup_icon" c:identifier="gtk_icon_theme_lookup_icon" version="2.4"> <doc xml:space="preserve">Looks up a named icon and returns a #GtkIconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() combines these two steps if all you need is the pixbuf.) When rendering on displays with high pixel densities you should not use a @size multiplied by the scaling factor returned by functions like gdk_window_get_scale_factor(). Instead, you should use gtk_icon_theme_lookup_icon_for_scale(), as the assets loaded for a given scaling factor may be different.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkIconInfo object containing information about the icon, or %NULL if the icon wasnât found.</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the icon to lookup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">desired icon size</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="lookup_icon_for_scale" c:identifier="gtk_icon_theme_lookup_icon_for_scale" version="3.10"> <doc xml:space="preserve">Looks up a named icon for a particular window scale and returns a #GtkIconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() combines these two steps if all you need is the pixbuf.)</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkIconInfo object containing information about the icon, or %NULL if the icon wasnât found.</doc> <type name="IconInfo" c:type="GtkIconInfo*"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the icon to lookup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">desired icon size</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">the desired scale</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags modifying the behavior of the icon lookup</doc> <type name="IconLookupFlags" c:type="GtkIconLookupFlags"/> </parameter> </parameters> </method> <method name="prepend_search_path" c:identifier="gtk_icon_theme_prepend_search_path" version="2.4"> <doc xml:space="preserve">Prepends a directory to the search path. See gtk_icon_theme_set_search_path().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">directory name to prepend to the icon path</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="rescan_if_needed" c:identifier="gtk_icon_theme_rescan_if_needed" version="2.4"> <doc xml:space="preserve">Checks to see if the icon theme has changed; if it has, any currently cached information is discarded and will be reloaded next time @icon_theme is accessed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the icon theme has changed and needed to be reloaded.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> </parameters> </method> <method name="set_custom_theme" c:identifier="gtk_icon_theme_set_custom_theme" version="2.4"> <doc xml:space="preserve">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 gtk_icon_theme_get_default() and gtk_icon_theme_get_for_screen().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="theme_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">name of icon theme to use instead of configured theme, or %NULL to unset a previously set custom theme</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_screen" c:identifier="gtk_icon_theme_set_screen" version="2.4"> <doc xml:space="preserve">Sets the screen for an icon theme; the screen is used to track the userâs currently configured icon theme, which might be different for different screens.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </method> <method name="set_search_path" c:identifier="gtk_icon_theme_set_search_path" version="2.4"> <doc xml:space="preserve">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.)</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_theme" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconTheme</doc> <type name="IconTheme" c:type="GtkIconTheme*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">array of directories that are searched for icon themes</doc> <array length="1" zero-terminated="0" c:type="gchar*"> <type name="filename"/> </array> </parameter> <parameter name="n_elements" transfer-ownership="none"> <doc xml:space="preserve">number of elements in @path.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <field name="parent_instance" readable="0" private="1"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="IconThemePrivate" c:type="GtkIconThemePrivate*"/> </field> <glib:signal name="changed" when="last"> <doc xml:space="preserve">Emitted when the current icon theme is switched or GTK+ detects that a change has occurred in the contents of the current icon theme.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="IconThemeClass" c:type="GtkIconThemeClass" glib:is-gtype-struct-for="IconTheme"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_theme" transfer-ownership="none"> <type name="IconTheme" c:type="GtkIconTheme*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="IconThemeError" glib:type-name="GtkIconThemeError" glib:get-type="gtk_icon_theme_error_get_type" c:type="GtkIconThemeError" glib:error-domain="gtk-icon-theme-error-quark"> <doc xml:space="preserve">Error codes for GtkIconTheme operations.</doc> <member name="not_found" value="0" c:identifier="GTK_ICON_THEME_NOT_FOUND" glib:nick="not-found"> <doc xml:space="preserve">The icon specified does not exist in the theme</doc> </member> <member name="failed" value="1" c:identifier="GTK_ICON_THEME_FAILED" glib:nick="failed"> <doc xml:space="preserve">An unspecified error occurred.</doc> </member> <function name="quark" c:identifier="gtk_icon_theme_error_quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> </enumeration> <record name="IconThemePrivate" c:type="GtkIconThemePrivate" disguised="1"> </record> <class name="IconView" c:symbol-prefix="icon_view" c:type="GtkIconView" parent="Container" glib:type-name="GtkIconView" glib:get-type="gtk_icon_view_get_type" glib:type-struct="IconViewClass"> <doc xml:space="preserve">#GtkIconView provides an alternative view on a #GtkTreeModel. It displays the model as a grid of icons with labels. Like #GtkTreeView, it allows to select one or multiple items (depending on the selection mode, see gtk_icon_view_set_selection_mode()). In addition to selection with the arrow keys, #GtkIconView supports rubberband selection, which is controlled by dragging the pointer. Note that if the tree model is backed by an actual tree store (as opposed to a flat list where the mapping to icons is obvious), #GtkIconView will only display the first level of the tree and ignore the treeâs branches. # CSS nodes |[<!-- language="plain" --> iconview.view â°ââ [rubberband] ]| GtkIconView has a single CSS node with name iconview and style class .view. For rubberband selection, a subnode with name rubberband is used.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="CellLayout"/> <implements name="Scrollable"/> <constructor name="new" c:identifier="gtk_icon_view_new" version="2.6"> <doc xml:space="preserve">Creates a new #GtkIconView widget</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkIconView widget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_area" c:identifier="gtk_icon_view_new_with_area" version="3.0"> <doc xml:space="preserve">Creates a new #GtkIconView widget using the specified @area to layout cells inside the icons.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkIconView widget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellArea to use to layout cells</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> </parameters> </constructor> <constructor name="new_with_model" c:identifier="gtk_icon_view_new_with_model" version="2.6"> <doc xml:space="preserve">Creates a new #GtkIconView widget with the model @model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkIconView widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">The model.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </constructor> <virtual-method name="activate_cursor_item"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="item_activated" invoker="item_activated" version="2.6"> <doc xml:space="preserve">Activates the item determined by @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be activated</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_cursor"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="select_all" invoker="select_all" version="2.6"> <doc xml:space="preserve">Selects all the icons. @icon_view must has its selection mode set to #GTK_SELECTION_MULTIPLE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="select_cursor_item"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="selection_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="toggle_cursor_item"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="unselect_all" invoker="unselect_all" version="2.6"> <doc xml:space="preserve">Unselects all the icons.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </virtual-method> <method name="convert_widget_to_bin_window_coords" c:identifier="gtk_icon_view_convert_widget_to_bin_window_coords" version="2.12"> <doc xml:space="preserve">Converts widget coordinates to coordinates for the bin_window, as expected by e.g. gtk_icon_view_get_path_at_pos().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="wx" transfer-ownership="none"> <doc xml:space="preserve">X coordinate relative to the widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="wy" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate relative to the widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="bx" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for bin_window X coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="by" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for bin_window Y coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="create_drag_icon" c:identifier="gtk_icon_view_create_drag_icon" version="2.8"> <doc xml:space="preserve">Creates a #cairo_surface_t representation of the item at @path. This image is used for a drag icon.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated surface of the drag icon.</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath in @icon_view</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="enable_model_drag_dest" c:identifier="gtk_icon_view_enable_model_drag_dest" version="2.8"> <doc xml:space="preserve">Turns @icon_view into a drop destination for automatic DND. Calling this method sets #GtkIconView:reorderable to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">the table of targets that the drag will support</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the number of items in @targets</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">the bitmask of possible actions for a drag to this widget</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> </parameters> </method> <method name="enable_model_drag_source" c:identifier="gtk_icon_view_enable_model_drag_source" version="2.8"> <doc xml:space="preserve">Turns @icon_view into a drag source for automatic DND. Calling this method sets #GtkIconView:reorderable to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="start_button_mask" transfer-ownership="none"> <doc xml:space="preserve">Mask of allowed buttons to start drag</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">the table of targets that the drag will support</doc> <array length="2" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the number of items in @targets</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">the bitmask of possible actions for a drag from this widget</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> </parameters> </method> <method name="get_activate_on_single_click" c:identifier="gtk_icon_view_get_activate_on_single_click" version="3.8"> <doc xml:space="preserve">Gets the setting set by gtk_icon_view_set_activate_on_single_click().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if item-activated will be emitted on a single click</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_cell_rect" c:identifier="gtk_icon_view_get_cell_rect" version="3.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE if there is no such item, %TRUE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="cell" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkCellRenderer or %NULL</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">rectangle to fill with cell rect</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_column_spacing" c:identifier="gtk_icon_view_get_column_spacing" version="2.6"> <doc xml:space="preserve">Returns the value of the ::column-spacing property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the space between columns</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_columns" c:identifier="gtk_icon_view_get_columns" version="2.6"> <doc xml:space="preserve">Returns the value of the ::columns property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of columns, or -1</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_cursor" c:identifier="gtk_icon_view_get_cursor" version="2.8"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cursor is set.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the current cursor path, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="cell" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">Return location the current focus cell, or %NULL</doc> <type name="CellRenderer" c:type="GtkCellRenderer**"/> </parameter> </parameters> </method> <method name="get_dest_item_at_pos" c:identifier="gtk_icon_view_get_dest_item_at_pos" version="2.8"> <doc xml:space="preserve">Determines the destination item for a given position.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether there is an item at the given position.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="drag_x" transfer-ownership="none"> <doc xml:space="preserve">the position to determine the destination item for</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="drag_y" transfer-ownership="none"> <doc xml:space="preserve">the position to determine the destination item for</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the path of the item, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the drop position, or %NULL</doc> <type name="IconViewDropPosition" c:type="GtkIconViewDropPosition*"/> </parameter> </parameters> </method> <method name="get_drag_dest_item" c:identifier="gtk_icon_view_get_drag_dest_item" version="2.8"> <doc xml:space="preserve">Gets information about the item that is highlighted for feedback.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the path of the highlighted item, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the drop position, or %NULL</doc> <type name="IconViewDropPosition" c:type="GtkIconViewDropPosition*"/> </parameter> </parameters> </method> <method name="get_item_at_pos" c:identifier="gtk_icon_view_get_item_at_pos" version="2.8"> <doc xml:space="preserve">Finds the path at the point (@x, @y), relative to bin_window coordinates. In contrast to gtk_icon_view_get_path_at_pos(), this function also obtains the cell at the specified position. The returned path should be freed with gtk_tree_path_free(). See gtk_icon_view_convert_widget_to_bin_window_coords() for converting widget coordinates to bin_window coordinates.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an item exists at the specified position</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">The x position to be identified</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">The y position to be identified</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the path, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="cell" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the renderer responsible for the cell at (@x, @y), or %NULL</doc> <type name="CellRenderer" c:type="GtkCellRenderer**"/> </parameter> </parameters> </method> <method name="get_item_column" c:identifier="gtk_icon_view_get_item_column" version="2.22"> <doc xml:space="preserve">Gets the column in which the item @path is currently displayed. Column numbers start at 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The column in which the item is displayed</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreePath of the item</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="get_item_orientation" c:identifier="gtk_icon_view_get_item_orientation" version="2.6"> <doc xml:space="preserve">Returns the value of the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the relative position of texts and icons</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_item_padding" c:identifier="gtk_icon_view_get_item_padding" version="2.18"> <doc xml:space="preserve">Returns the value of the ::item-padding property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the padding around items</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_item_row" c:identifier="gtk_icon_view_get_item_row" version="2.22"> <doc xml:space="preserve">Gets the row in which the item @path is currently displayed. Row numbers start at 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The row in which the item is displayed</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreePath of the item</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="get_item_width" c:identifier="gtk_icon_view_get_item_width" version="2.6"> <doc xml:space="preserve">Returns the value of the ::item-width property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the width of a single item, or -1</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_margin" c:identifier="gtk_icon_view_get_margin" version="2.6"> <doc xml:space="preserve">Returns the value of the ::margin property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the space at the borders</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_markup_column" c:identifier="gtk_icon_view_get_markup_column" version="2.6"> <doc xml:space="preserve">Returns the column with markup text for @icon_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the markup column, or -1 if itâs unset.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_model" c:identifier="gtk_icon_view_get_model" version="2.6"> <doc xml:space="preserve">Returns the model the #GtkIconView is based on. Returns %NULL if the model is unset.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #GtkTreeModel, or %NULL if none is currently being used.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_path_at_pos" c:identifier="gtk_icon_view_get_path_at_pos" version="2.6"> <doc xml:space="preserve">Finds the path at the point (@x, @y), relative to bin_window coordinates. See gtk_icon_view_get_item_at_pos(), if you are also interested in the cell at the specified position. See gtk_icon_view_convert_widget_to_bin_window_coords() for converting widget coordinates to bin_window coordinates.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">The #GtkTreePath corresponding to the icon or %NULL if no icon exists at that position.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">The x position to be identified</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">The y position to be identified</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_pixbuf_column" c:identifier="gtk_icon_view_get_pixbuf_column" version="2.6"> <doc xml:space="preserve">Returns the column with pixbufs for @icon_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the pixbuf column, or -1 if itâs unset.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_reorderable" c:identifier="gtk_icon_view_get_reorderable" version="2.8"> <doc xml:space="preserve">Retrieves whether the user can reorder the list via drag-and-drop. See gtk_icon_view_set_reorderable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the list can be reordered.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_row_spacing" c:identifier="gtk_icon_view_get_row_spacing" version="2.6"> <doc xml:space="preserve">Returns the value of the ::row-spacing property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the space between rows</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_selected_items" c:identifier="gtk_icon_view_get_selected_items" version="2.6"> <doc xml:space="preserve">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: |[<!-- language="C" --> g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free); ]|</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A #GList containing a #GtkTreePath for each selected row.</doc> <type name="GLib.List" c:type="GList*"> <type name="TreePath"/> </type> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_selection_mode" c:identifier="gtk_icon_view_get_selection_mode" version="2.6"> <doc xml:space="preserve">Gets the selection mode of the @icon_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current selection mode</doc> <type name="SelectionMode" c:type="GtkSelectionMode"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_spacing" c:identifier="gtk_icon_view_get_spacing" version="2.6"> <doc xml:space="preserve">Returns the value of the ::spacing property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the space between cells</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_text_column" c:identifier="gtk_icon_view_get_text_column" version="2.6"> <doc xml:space="preserve">Returns the column with text for @icon_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the text column, or -1 if itâs unset.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip_column" c:identifier="gtk_icon_view_get_tooltip_column" version="2.12"> <doc xml:space="preserve">Returns the column of @icon_viewâs model which is being used for displaying tooltips on @icon_viewâs rows.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index of the tooltip column that is currently being used, or -1 if this is disabled.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip_context" c:identifier="gtk_icon_view_get_tooltip_context" version="2.12"> <doc xml:space="preserve">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. @x and @y will always be converted to be relative to @icon_viewâs bin_window if @keyboard_tooltip is %FALSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether or not the given tooltip context points to a item</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">an #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="x" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">the x coordinate (relative to widget coordinates)</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">the y coordinate (relative to widget coordinates)</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="keyboard_tip" transfer-ownership="none"> <doc xml:space="preserve">whether this is a keyboard tooltip or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="model" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">a pointer to receive a #GtkTreeModel or %NULL</doc> <type name="TreeModel" c:type="GtkTreeModel**"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a pointer to receive a #GtkTreePath or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">a pointer to receive a #GtkTreeIter or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="get_visible_range" c:identifier="gtk_icon_view_get_visible_range" version="2.8"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if valid paths were placed in @start_path and @end_path</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="start_path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for start of region, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="end_path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for end of region, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> </parameters> </method> <method name="item_activated" c:identifier="gtk_icon_view_item_activated" version="2.6"> <doc xml:space="preserve">Activates the item determined by @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be activated</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="path_is_selected" c:identifier="gtk_icon_view_path_is_selected" version="2.6"> <doc xml:space="preserve">Returns %TRUE if the icon pointed to by @path is currently selected. If @path does not point to a valid location, %FALSE is returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @path is selected.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath to check selection on.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="scroll_to_path" c:identifier="gtk_icon_view_scroll_to_path" version="2.8"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The path of the item to move to.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="use_align" transfer-ownership="none"> <doc xml:space="preserve">whether to use alignment arguments, or %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="row_align" transfer-ownership="none"> <doc xml:space="preserve">The vertical alignment of the item specified by @path.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="col_align" transfer-ownership="none"> <doc xml:space="preserve">The horizontal alignment of the item specified by @path.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="select_all" c:identifier="gtk_icon_view_select_all" version="2.6"> <doc xml:space="preserve">Selects all the icons. @icon_view must has its selection mode set to #GTK_SELECTION_MULTIPLE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="select_path" c:identifier="gtk_icon_view_select_path" version="2.6"> <doc xml:space="preserve">Selects the row at @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be selected.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="selected_foreach" c:identifier="gtk_icon_view_selected_foreach" version="2.6"> <doc xml:space="preserve">Calls a function for each selected icon. Note that the model or selection cannot be modified from within this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">The function to call for each selected icon.</doc> <type name="IconViewForeachFunc" c:type="GtkIconViewForeachFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data to pass to the function.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="set_activate_on_single_click" c:identifier="gtk_icon_view_set_activate_on_single_click" version="3.8"> <doc xml:space="preserve">Causes the #GtkIconView::item-activated signal to be emitted on a single click instead of a double click.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="single" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to emit item-activated on a single click</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_column_spacing" c:identifier="gtk_icon_view_set_column_spacing" version="2.6"> <doc xml:space="preserve">Sets the ::column-spacing property which specifies the space which is inserted between the columns of the icon view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="column_spacing" transfer-ownership="none"> <doc xml:space="preserve">the column spacing</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_columns" c:identifier="gtk_icon_view_set_columns" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="columns" transfer-ownership="none"> <doc xml:space="preserve">the number of columns</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_cursor" c:identifier="gtk_icon_view_set_cursor" version="2.8"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="cell" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">One of the cell renderers of @icon_view, or %NULL</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="start_editing" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the specified cell should start being edited.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_drag_dest_item" c:identifier="gtk_icon_view_set_drag_dest_item" version="2.8"> <doc xml:space="preserve">Sets the item that is highlighted for feedback.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The path of the item to highlight, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">Specifies where to drop, relative to the item</doc> <type name="IconViewDropPosition" c:type="GtkIconViewDropPosition"/> </parameter> </parameters> </method> <method name="set_item_orientation" c:identifier="gtk_icon_view_set_item_orientation" version="2.6"> <doc xml:space="preserve">Sets the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the relative position of texts and icons</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </method> <method name="set_item_padding" c:identifier="gtk_icon_view_set_item_padding" version="2.18"> <doc xml:space="preserve">Sets the #GtkIconView:item-padding property which specifies the padding around each of the icon viewâs items.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="item_padding" transfer-ownership="none"> <doc xml:space="preserve">the item padding</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_item_width" c:identifier="gtk_icon_view_set_item_width" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="item_width" transfer-ownership="none"> <doc xml:space="preserve">the width for each item</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_margin" c:identifier="gtk_icon_view_set_margin" version="2.6"> <doc xml:space="preserve">Sets the ::margin property which specifies the space which is inserted at the top, bottom, left and right of the icon view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the margin</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_markup_column" c:identifier="gtk_icon_view_set_markup_column" version="2.6"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">A column in the currently used model, or -1 to display no text</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_model" c:identifier="gtk_icon_view_set_model" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The model.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </method> <method name="set_pixbuf_column" c:identifier="gtk_icon_view_set_pixbuf_column" version="2.6"> <doc xml:space="preserve">Sets the column with pixbufs for @icon_view to be @column. The pixbuf column must be of type #GDK_TYPE_PIXBUF</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">A column in the currently used model, or -1 to disable</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_reorderable" c:identifier="gtk_icon_view_set_reorderable" version="2.8"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="reorderable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the list of items can be reordered.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_row_spacing" c:identifier="gtk_icon_view_set_row_spacing" version="2.6"> <doc xml:space="preserve">Sets the ::row-spacing property which specifies the space which is inserted between the rows of the icon view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="row_spacing" transfer-ownership="none"> <doc xml:space="preserve">the row spacing</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_selection_mode" c:identifier="gtk_icon_view_set_selection_mode" version="2.6"> <doc xml:space="preserve">Sets the selection mode of the @icon_view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">The selection mode</doc> <type name="SelectionMode" c:type="GtkSelectionMode"/> </parameter> </parameters> </method> <method name="set_spacing" c:identifier="gtk_icon_view_set_spacing" version="2.6"> <doc xml:space="preserve">Sets the ::spacing property which specifies the space which is inserted between the cells (i.e. the icon and the text) of an item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the spacing</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_text_column" c:identifier="gtk_icon_view_set_text_column" version="2.6"> <doc xml:space="preserve">Sets the column with text for @icon_view to be @column. The text column must be of type #G_TYPE_STRING.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">A column in the currently used model, or -1 to display no text</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_tooltip_cell" c:identifier="gtk_icon_view_set_tooltip_cell" version="2.12"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="cell" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkCellRenderer or %NULL</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="set_tooltip_column" c:identifier="gtk_icon_view_set_tooltip_column" version="2.12"> <doc xml:space="preserve">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 &, <, etc have to be escaped in the text.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">an integer, which is a valid column number for @icon_viewâs model</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_tooltip_item" c:identifier="gtk_icon_view_set_tooltip_item" version="2.12"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="unselect_all" c:identifier="gtk_icon_view_unselect_all" version="2.6"> <doc xml:space="preserve">Unselects all the icons.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="unselect_path" c:identifier="gtk_icon_view_unselect_path" version="2.6"> <doc xml:space="preserve">Unselects the row at @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be unselected.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="unset_model_drag_dest" c:identifier="gtk_icon_view_unset_model_drag_dest" version="2.8"> <doc xml:space="preserve">Undoes the effect of gtk_icon_view_enable_model_drag_dest(). Calling this method sets #GtkIconView:reorderable to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <method name="unset_model_drag_source" c:identifier="gtk_icon_view_unset_model_drag_source" version="2.8"> <doc xml:space="preserve">Undoes the effect of gtk_icon_view_enable_model_drag_source(). Calling this method sets #GtkIconView:reorderable to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </instance-parameter> </parameters> </method> <property name="activate-on-single-click" version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The activate-on-single-click property specifies whether the "item-activated" signal will be emitted after a single click.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="cell-area" version="3.0" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="CellArea"/> </property> <property name="column-spacing" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The column-spacing property specifies the space which is inserted between the columns of the icon view.</doc> <type name="gint" c:type="gint"/> </property> <property name="columns" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="item-orientation" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The item-orientation property specifies how the cells (i.e. the icon and the text) of the item are positioned relative to each other.</doc> <type name="Orientation"/> </property> <property name="item-padding" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The item-padding property specifies the padding around each of the icon view's item.</doc> <type name="gint" c:type="gint"/> </property> <property name="item-width" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="margin" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The margin property specifies the space which is inserted at the edges of the icon view.</doc> <type name="gint" c:type="gint"/> </property> <property name="markup-column" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="model" writable="1" transfer-ownership="none"> <type name="TreeModel"/> </property> <property name="pixbuf-column" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="reorderable" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The reorderable property specifies if the items can be reordered by DND.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="row-spacing" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The row-spacing property specifies the space which is inserted between the rows of the icon view.</doc> <type name="gint" c:type="gint"/> </property> <property name="selection-mode" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="SelectionMode"/> </property> <property name="spacing" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The spacing property specifies the space which is inserted between the cells (i.e. the icon and the text) of an item.</doc> <type name="gint" c:type="gint"/> </property> <property name="text-column" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="tooltip-column" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <field name="parent"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="IconViewPrivate" c:type="GtkIconViewPrivate*"/> </field> <glib:signal name="activate-cursor-item" when="last" action="1"> <doc xml:space="preserve">A [keybinding signal][GtkBindingSignal] 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.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="item-activated" when="last"> <doc xml:space="preserve">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 "activate-on-single-click" property set to %FALSE, or when the user single clicks an item when the "activate-on-single-click" 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreePath for the activated item</doc> <type name="TreePath"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-cursor" when="last" action="1"> <doc xml:space="preserve">The ::move-cursor signal is a [keybinding signal][GtkBindingSignal] 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 "pages" All of these will extend the selection when combined with the Shift modifier.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">the granularity of the move, as a #GtkMovementStep</doc> <type name="MovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">the number of @step units to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="select-all" when="last" action="1"> <doc xml:space="preserve">A [keybinding signal][GtkBindingSignal] 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="select-cursor-item" when="last" action="1"> <doc xml:space="preserve">A [keybinding signal][GtkBindingSignal] 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="selection-changed" when="first"> <doc xml:space="preserve">The ::selection-changed signal is emitted when the selection (i.e. the set of selected items) changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="toggle-cursor-item" when="last" action="1"> <doc xml:space="preserve">A [keybinding signal][GtkBindingSignal] 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="unselect-all" when="last" action="1"> <doc xml:space="preserve">A [keybinding signal][GtkBindingSignal] 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="IconViewAccessible" c:symbol-prefix="icon_view_accessible" c:type="GtkIconViewAccessible" parent="ContainerAccessible" glib:type-name="GtkIconViewAccessible" glib:get-type="gtk_icon_view_accessible_get_type" glib:type-struct="IconViewAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="IconViewAccessiblePrivate" c:type="GtkIconViewAccessiblePrivate*"/> </field> </class> <record name="IconViewAccessibleClass" c:type="GtkIconViewAccessibleClass" glib:is-gtype-struct-for="IconViewAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="IconViewAccessiblePrivate" c:type="GtkIconViewAccessiblePrivate" disguised="1"> </record> <record name="IconViewClass" c:type="GtkIconViewClass" glib:is-gtype-struct-for="IconView"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="item_activated"> <callback name="item_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be activated</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> <field name="selection_changed"> <callback name="selection_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </parameter> </parameters> </callback> </field> <field name="select_all"> <callback name="select_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </parameter> </parameters> </callback> </field> <field name="unselect_all"> <callback name="unselect_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkIconView.</doc> <type name="IconView" c:type="GtkIconView*"/> </parameter> </parameters> </callback> </field> <field name="select_cursor_item"> <callback name="select_cursor_item"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </parameter> </parameters> </callback> </field> <field name="toggle_cursor_item"> <callback name="toggle_cursor_item"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </parameter> </parameters> </callback> </field> <field name="move_cursor"> <callback name="move_cursor"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="activate_cursor_item"> <callback name="activate_cursor_item"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <type name="IconView" c:type="GtkIconView*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="IconViewDropPosition" glib:type-name="GtkIconViewDropPosition" glib:get-type="gtk_icon_view_drop_position_get_type" c:type="GtkIconViewDropPosition"> <doc xml:space="preserve">An enum for determining where a dropped item goes.</doc> <member name="no_drop" value="0" c:identifier="GTK_ICON_VIEW_NO_DROP" glib:nick="no-drop"> <doc xml:space="preserve">no drop possible</doc> </member> <member name="drop_into" value="1" c:identifier="GTK_ICON_VIEW_DROP_INTO" glib:nick="drop-into"> <doc xml:space="preserve">dropped item replaces the item</doc> </member> <member name="drop_left" value="2" c:identifier="GTK_ICON_VIEW_DROP_LEFT" glib:nick="drop-left"> <doc xml:space="preserve">droppped item is inserted to the left</doc> </member> <member name="drop_right" value="3" c:identifier="GTK_ICON_VIEW_DROP_RIGHT" glib:nick="drop-right"> <doc xml:space="preserve">dropped item is inserted to the right</doc> </member> <member name="drop_above" value="4" c:identifier="GTK_ICON_VIEW_DROP_ABOVE" glib:nick="drop-above"> <doc xml:space="preserve">dropped item is inserted above</doc> </member> <member name="drop_below" value="5" c:identifier="GTK_ICON_VIEW_DROP_BELOW" glib:nick="drop-below"> <doc xml:space="preserve">dropped item is inserted below</doc> </member> </enumeration> <callback name="IconViewForeachFunc" c:type="GtkIconViewForeachFunc"> <doc xml:space="preserve">A function used by gtk_icon_view_selected_foreach() to map all selected rows. It will be called on every selected row in the view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconView</doc> <type name="IconView" c:type="GtkIconView*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath of a selected row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="IconViewPrivate" c:type="GtkIconViewPrivate" disguised="1"> </record> <class name="Image" c:symbol-prefix="image" c:type="GtkImage" parent="Misc" glib:type-name="GtkImage" glib:get-type="gtk_image_get_type" glib:type-struct="ImageClass"> <doc xml:space="preserve">The #GtkImage widget displays an image. Various kinds of object can be displayed as an image; most typically, you would load a #GdkPixbuf ("pixel buffer") from a file, and then display that. Thereâs a convenience function to do this, gtk_image_new_from_file(), used as follows: |[<!-- language="C" --> GtkWidget *image; image = gtk_image_new_from_file ("myfile.png"); ]| If the file isnât loaded successfully, the image will contain a âbroken imageâ icon similar to that used in many web browsers. If you want to handle errors in loading the file yourself, for example by displaying an error message, then load the image with gdk_pixbuf_new_from_file(), then create the #GtkImage with gtk_image_new_from_pixbuf(). The image file may contain an animation, if so the #GtkImage will display an animation (#GdkPixbufAnimation) instead of a static image. #GtkImage is a subclass of #GtkMisc, which implies that you can align it (center, left, right) and add padding to it, using #GtkMisc methods. #GtkImage is a âno windowâ widget (has no #GdkWindow of its own), so by default does not receive events. If you want to receive events on the image, such as button clicks, place the image inside a #GtkEventBox, then connect to the event signals on the event box. ## Handling button press events on a #GtkImage. |[<!-- language="C" --> static gboolean button_press_callback (GtkWidget *event_box, GdkEventButton *event, gpointer data) { g_print ("Event box clicked at coordinates %f,%f\n", event->x, event->y); // Returning TRUE means we handled the event, so the signal // emission should be stopped (donât call any further callbacks // that may be connected). Return FALSE to continue invoking callbacks. return TRUE; } static GtkWidget* create_image (void) { GtkWidget *image; GtkWidget *event_box; image = gtk_image_new_from_file ("myfile.png"); event_box = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (event_box), image); g_signal_connect (G_OBJECT (event_box), "button_press_event", G_CALLBACK (button_press_callback), image); return image; } ]| When handling events on the event box, keep in mind that coordinates in the image may be different from event box coordinates due to the alignment and padding settings on the image (see #GtkMisc). The simplest way to solve this is to set the alignment to 0.0 (left/top), and set the padding to zero. Then the origin of the image will be the same as the origin of the event box. Sometimes an application will want to avoid depending on external data files, such as image files. GTK+ comes with a program to avoid this, called âgdk-pixbuf-csourceâ. This library allows you to convert an image into a C variable declaration, which can then be loaded into a #GdkPixbuf using gdk_pixbuf_new_from_inline(). # CSS nodes GtkImage has a single CSS node with the name image.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_image_new"> <doc xml:space="preserve">Creates a new empty #GtkImage widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkImage widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_from_animation" c:identifier="gtk_image_new_from_animation"> <doc xml:space="preserve">Creates a #GtkImage displaying the given animation. The #GtkImage does not assume a reference to the animation; you still need to unref it if you own references. #GtkImage will add its own reference rather than adopting yours. Note that the animation frames are shown using a timeout with #G_PRIORITY_DEFAULT. When using animations to indicate busyness, keep in mind that the animation will only be shown if the main loop is not busy with something that has a higher priority.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage widget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="animation" transfer-ownership="none"> <doc xml:space="preserve">an animation</doc> <type name="GdkPixbuf.PixbufAnimation" c:type="GdkPixbufAnimation*"/> </parameter> </parameters> </constructor> <constructor name="new_from_file" c:identifier="gtk_image_new_from_file"> <doc xml:space="preserve">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 the file contains an animation, the image will contain an animation. If you need to detect failures to load the file, use gdk_pixbuf_new_from_file() to load the file yourself, then create the #GtkImage from the pixbuf. (Or for animations, use gdk_pixbuf_animation_new_from_file()). The storage type (gtk_image_get_storage_type()) of the returned image is not defined, it will be whatever is appropriate for displaying the file.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">a filename</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_gicon" c:identifier="gtk_image_new_from_gicon" version="2.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage displaying the themed icon</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">an icon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </constructor> <constructor name="new_from_icon_name" c:identifier="gtk_image_new_from_icon_name" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage displaying the themed icon</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an icon name or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </constructor> <constructor name="new_from_icon_set" c:identifier="gtk_image_new_from_icon_set" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a #GtkImage displaying an icon set. Sample stock sizes are #GTK_ICON_SIZE_MENU, #GTK_ICON_SIZE_SMALL_TOOLBAR. Instead of using this function, usually itâs better to create a #GtkIconFactory, put your icon sets in the icon factory, add the icon factory to the list of default factories with gtk_icon_factory_add_default(), and then use gtk_image_new_from_stock(). This will allow themes to override the icon you ship with your application. The #GtkImage does not assume a reference to the icon set; you still need to unref it if you own references. #GtkImage will add its own reference rather than adopting yours.</doc> <doc-deprecated xml:space="preserve">Use gtk_image_new_from_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </constructor> <constructor name="new_from_pixbuf" c:identifier="gtk_image_new_from_pixbuf"> <doc xml:space="preserve">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. 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 gtk_image_new_from_icon_name().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="pixbuf" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkPixbuf, or %NULL</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </constructor> <constructor name="new_from_resource" c:identifier="gtk_image_new_from_resource" version="3.4"> <doc xml:space="preserve">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 the file contains an animation, the image will contain an animation. If you need to detect failures to load the file, use gdk_pixbuf_new_from_file() to load the file yourself, then create the #GtkImage from the pixbuf. (Or for animations, use gdk_pixbuf_animation_new_from_file()). The storage type (gtk_image_get_storage_type()) of the returned image is not defined, it will be whatever is appropriate for displaying the file.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="resource_path" transfer-ownership="none"> <doc xml:space="preserve">a resource path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_stock" c:identifier="gtk_image_new_from_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a #GtkImage displaying a stock icon. Sample stock icon names are #GTK_STOCK_OPEN, #GTK_STOCK_QUIT. Sample stock sizes are #GTK_ICON_SIZE_MENU, #GTK_ICON_SIZE_SMALL_TOOLBAR. If the stock icon name isnât known, the image will be empty. You can register your own stock icon names, see gtk_icon_factory_add_default() and gtk_icon_factory_add().</doc> <doc-deprecated xml:space="preserve">Use gtk_image_new_from_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage displaying the stock icon</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">a stock icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </constructor> <constructor name="new_from_surface" c:identifier="gtk_image_new_from_surface" version="3.10"> <doc xml:space="preserve">Creates a new #GtkImage displaying @surface. The #GtkImage does not assume a reference to the surface; you still need to unref it if you own references. #GtkImage will add its own reference rather than adopting yours.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImage</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="surface" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #cairo_surface_t, or %NULL</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </parameter> </parameters> </constructor> <method name="clear" c:identifier="gtk_image_clear" version="2.8"> <doc xml:space="preserve">Resets the image to be empty.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> </parameters> </method> <method name="get_animation" c:identifier="gtk_image_get_animation"> <doc xml:space="preserve">Gets the #GdkPixbufAnimation being displayed by the #GtkImage. The storage type of the image must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_ANIMATION (see gtk_image_get_storage_type()). The caller of this function does not own a reference to the returned animation.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the displayed animation, or %NULL if the image is empty</doc> <type name="GdkPixbuf.PixbufAnimation" c:type="GdkPixbufAnimation*"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> </parameters> </method> <method name="get_gicon" c:identifier="gtk_image_get_gicon" version="2.14"> <doc xml:space="preserve">Gets the #GIcon and size being displayed by the #GtkImage. The storage type of the image must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_GICON (see gtk_image_get_storage_type()). The caller of this function does not own a reference to the returned #GIcon.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="gicon" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">place to store a #GIcon, or %NULL</doc> <type name="Gio.Icon" c:type="GIcon**"/> </parameter> <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">place to store an icon size (#GtkIconSize), or %NULL</doc> <type name="gint" c:type="GtkIconSize*"/> </parameter> </parameters> </method> <method name="get_icon_name" c:identifier="gtk_image_get_icon_name" version="2.6"> <doc xml:space="preserve">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 gtk_image_get_storage_type()). The returned string is owned by the #GtkImage and should not be freed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="icon_name" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">place to store an icon name, or %NULL</doc> <type name="utf8" c:type="const gchar**"/> </parameter> <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">place to store an icon size (#GtkIconSize), or %NULL</doc> <type name="gint" c:type="GtkIconSize*"/> </parameter> </parameters> </method> <method name="get_icon_set" c:identifier="gtk_image_get_icon_set" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the icon set and size being displayed by the #GtkImage. The storage type of the image must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_ICON_SET (see gtk_image_get_storage_type()).</doc> <doc-deprecated xml:space="preserve">Use gtk_image_get_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="icon_set" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">location to store a #GtkIconSet, or %NULL</doc> <type name="IconSet" c:type="GtkIconSet**"/> </parameter> <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store a stock icon size (#GtkIconSize), or %NULL</doc> <type name="gint" c:type="GtkIconSize*"/> </parameter> </parameters> </method> <method name="get_pixbuf" c:identifier="gtk_image_get_pixbuf"> <doc xml:space="preserve">Gets the #GdkPixbuf being displayed by the #GtkImage. The storage type of the image must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_PIXBUF (see gtk_image_get_storage_type()). The caller of this function does not own a reference to the returned pixbuf.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the displayed pixbuf, or %NULL if the image is empty</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> </parameters> </method> <method name="get_pixel_size" c:identifier="gtk_image_get_pixel_size" version="2.6"> <doc xml:space="preserve">Gets the pixel size used for named icons.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the pixel size used for named icons.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> </parameters> </method> <method name="get_stock" c:identifier="gtk_image_get_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the stock icon name and size being displayed by the #GtkImage. The storage type of the image must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_STOCK (see gtk_image_get_storage_type()). The returned string is owned by the #GtkImage and should not be freed.</doc> <doc-deprecated xml:space="preserve">Use gtk_image_get_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="stock_id" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">place to store a stock icon name, or %NULL</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">place to store a stock icon size (#GtkIconSize), or %NULL</doc> <type name="gint" c:type="GtkIconSize*"/> </parameter> </parameters> </method> <method name="get_storage_type" c:identifier="gtk_image_get_storage_type"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">image representation being used</doc> <type name="ImageType" c:type="GtkImageType"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> </parameters> </method> <method name="set_from_animation" c:identifier="gtk_image_set_from_animation"> <doc xml:space="preserve">Causes the #GtkImage to display the given animation (or display nothing, if you set the animation to %NULL).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="animation" transfer-ownership="none"> <doc xml:space="preserve">the #GdkPixbufAnimation</doc> <type name="GdkPixbuf.PixbufAnimation" c:type="GdkPixbufAnimation*"/> </parameter> </parameters> </method> <method name="set_from_file" c:identifier="gtk_image_set_from_file"> <doc xml:space="preserve">See gtk_image_new_from_file() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a filename or %NULL</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_from_gicon" c:identifier="gtk_image_set_from_gicon" version="2.14"> <doc xml:space="preserve">See gtk_image_new_from_gicon() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">an icon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">an icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_from_icon_name" c:identifier="gtk_image_set_from_icon_name" version="2.6"> <doc xml:space="preserve">See gtk_image_new_from_icon_name() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an icon name or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">an icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_from_icon_set" c:identifier="gtk_image_set_from_icon_set" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">See gtk_image_new_from_icon_set() for details.</doc> <doc-deprecated xml:space="preserve">Use gtk_image_set_from_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="icon_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSet</doc> <type name="IconSet" c:type="GtkIconSet*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_from_pixbuf" c:identifier="gtk_image_set_from_pixbuf"> <doc xml:space="preserve">See gtk_image_new_from_pixbuf() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="pixbuf" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkPixbuf or %NULL</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_from_resource" c:identifier="gtk_image_set_from_resource"> <doc xml:space="preserve">See gtk_image_new_from_resource() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="resource_path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a resource path or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_from_stock" c:identifier="gtk_image_set_from_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">See gtk_image_new_from_stock() for details.</doc> <doc-deprecated xml:space="preserve">Use gtk_image_set_from_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">a stock icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_from_surface" c:identifier="gtk_image_set_from_surface" version="3.10"> <doc xml:space="preserve">See gtk_image_new_from_surface() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="surface" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a cairo_surface_t or %NULL</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </parameter> </parameters> </method> <method name="set_pixel_size" c:identifier="gtk_image_set_pixel_size" version="2.6"> <doc xml:space="preserve">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 gtk_image_set_from_icon_name().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImage</doc> <type name="Image" c:type="GtkImage*"/> </instance-parameter> <parameter name="pixel_size" transfer-ownership="none"> <doc xml:space="preserve">the new pixel size</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="file" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="gicon" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The GIcon displayed in the GtkImage. For themed icons, If the icon theme is changed, the image will be updated automatically.</doc> <type name="Gio.Icon"/> </property> <property name="icon-name" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The name of the icon in the icon theme. If the icon theme is changed, the image will be updated automatically.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="icon-set" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">Use #GtkImage:icon-name instead.</doc-deprecated> <type name="IconSet"/> </property> <property name="icon-size" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="pixbuf" writable="1" transfer-ownership="none"> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="pixbuf-animation" writable="1" transfer-ownership="none"> <type name="GdkPixbuf.PixbufAnimation"/> </property> <property name="pixel-size" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The "pixel-size" property can be used to specify a fixed size overriding the #GtkImage:icon-size property for images of type %GTK_IMAGE_ICON_NAME.</doc> <type name="gint" c:type="gint"/> </property> <property name="resource" version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A path to a resource file to display.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="stock" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">Use #GtkImage:icon-name instead.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="storage-type" transfer-ownership="none"> <type name="ImageType"/> </property> <property name="surface" writable="1" transfer-ownership="none"> <type name="cairo.Surface"/> </property> <property name="use-fallback" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="misc"> <type name="Misc" c:type="GtkMisc"/> </field> <field name="priv" readable="0" private="1"> <type name="ImagePrivate" c:type="GtkImagePrivate*"/> </field> </class> <class name="ImageAccessible" c:symbol-prefix="image_accessible" c:type="GtkImageAccessible" parent="WidgetAccessible" glib:type-name="GtkImageAccessible" glib:get-type="gtk_image_accessible_get_type" glib:type-struct="ImageAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="ImageAccessiblePrivate" c:type="GtkImageAccessiblePrivate*"/> </field> </class> <record name="ImageAccessibleClass" c:type="GtkImageAccessibleClass" glib:is-gtype-struct-for="ImageAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="ImageAccessiblePrivate" c:type="GtkImageAccessiblePrivate" disguised="1"> </record> <class name="ImageCellAccessible" c:symbol-prefix="image_cell_accessible" c:type="GtkImageCellAccessible" parent="RendererCellAccessible" glib:type-name="GtkImageCellAccessible" glib:get-type="gtk_image_cell_accessible_get_type" glib:type-struct="ImageCellAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="RendererCellAccessible" c:type="GtkRendererCellAccessible"/> </field> <field name="priv"> <type name="ImageCellAccessiblePrivate" c:type="GtkImageCellAccessiblePrivate*"/> </field> </class> <record name="ImageCellAccessibleClass" c:type="GtkImageCellAccessibleClass" glib:is-gtype-struct-for="ImageCellAccessible"> <field name="parent_class"> <type name="RendererCellAccessibleClass" c:type="GtkRendererCellAccessibleClass"/> </field> </record> <record name="ImageCellAccessiblePrivate" c:type="GtkImageCellAccessiblePrivate" disguised="1"> </record> <record name="ImageClass" c:type="GtkImageClass" glib:is-gtype-struct-for="Image"> <field name="parent_class"> <type name="MiscClass" c:type="GtkMiscClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="ImageMenuItem" c:symbol-prefix="image_menu_item" c:type="GtkImageMenuItem" parent="MenuItem" glib:type-name="GtkImageMenuItem" glib:get-type="gtk_image_menu_item_get_type" glib:type-struct="ImageMenuItemClass"> <doc xml:space="preserve">A GtkImageMenuItem is a menu item which has an icon next to the text label. This is functionally equivalent to: |[<!-- language="C" --> GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); GtkWidget *icon = gtk_image_new_from_icon_name ("folder-music-symbolic", GTK_ICON_SIZE_MENU); GtkWidget *label = gtk_label_new ("Music"); GtkWidget *menu_item = gtk_menu_item_new (); gtk_container_add (GTK_CONTAINER (box), icon); gtk_container_add (GTK_CONTAINER (box), label); gtk_container_add (GTK_CONTAINER (menu_item), box); gtk_widget_show_all (menu_item); ]| Note that the user may disable display of menu icons using the #GtkSettings:gtk-menu-images setting, so make sure to still fill in the text label. If you want to ensure that your menu items show an icon you are strongly encouraged to use a #GtkMenuItem with a #GtkImage instead. #GtkImageMenuItem has been deprecated since GTK+ 3.10. If you want to display an icon in a menu item, you should use #GtkMenuItem and pack a #GtkBox with a #GtkImage and a #GtkLabel instead. You should also consider using #GtkBuilder and the XML #GMenu description for creating menus, by following the [GMenu guide][https://developer.gnome.org/GMenu/]. You should consider using icons in menu items only sparingly, and for "objects" (or "nouns") elements only, like bookmarks, files, and links; "actions" (or "verbs") should not have icons. Furthermore, if you would like to display keyboard accelerator, you must pack the accel label into the box using gtk_box_pack_end() and align the label, otherwise the accelerator will not display correctly. The following code snippet adds a keyboard accelerator to the menu item, with a key binding of Ctrl+M: |[<!-- language="C" --> GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); GtkWidget *icon = gtk_image_new_from_icon_name ("folder-music-symbolic", GTK_ICON_SIZE_MENU); GtkWidget *label = gtk_accel_label_new ("Music"); GtkWidget *menu_item = gtk_menu_item_new (); GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_container_add (GTK_CONTAINER (box), icon); gtk_label_set_use_underline (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_add_accelerator (menu_item, "activate", accel_group, GDK_KEY_m, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menu_item); gtk_box_pack_end (GTK_BOX (box), label, TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (menu_item), box); gtk_widget_show_all (menu_item); ]|</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_image_menu_item_new" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkImageMenuItem with an empty label.</doc> <doc-deprecated xml:space="preserve">Use gtk_menu_item_new() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImageMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_from_stock" c:identifier="gtk_image_menu_item_new_from_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkImageMenuItem containing the image and text from a stock item. Some stock ids have preprocessor macros like #GTK_STOCK_OK and #GTK_STOCK_APPLY. If you want this menu item to have changeable accelerators, then pass in %NULL for accel_group. Next call gtk_menu_item_set_accel_path() with an appropriate path for the menu item, use gtk_stock_lookup() to look up the standard accelerator for the stock item, and if one is found, call gtk_accel_map_add_entry() to register it.</doc> <doc-deprecated xml:space="preserve">Use gtk_menu_item_new_with_mnemonic() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImageMenuItem.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the name of the stock item.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accel_group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkAccelGroup to add the menu items accelerator to, or %NULL.</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> </parameters> </constructor> <constructor name="new_with_label" c:identifier="gtk_image_menu_item_new_with_label" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkImageMenuItem containing a label.</doc> <doc-deprecated xml:space="preserve">Use gtk_menu_item_new_with_label() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImageMenuItem.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text of the menu item.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_image_menu_item_new_with_mnemonic" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkImageMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in @label indicate the mnemonic for the menu item.</doc> <doc-deprecated xml:space="preserve">Use gtk_menu_item_new_with_mnemonic() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkImageMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text of the menu item, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_always_show_image" c:identifier="gtk_image_menu_item_get_always_show_image" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether the menu item will ignore the #GtkSettings:gtk-menu-images setting and always show the image, if available.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menu item will always show the image</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="image_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImageMenuItem</doc> <type name="ImageMenuItem" c:type="GtkImageMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_image" c:identifier="gtk_image_menu_item_get_image" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the widget that is currently set as the image of @image_menu_item. See gtk_image_menu_item_set_image().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widget set as image of @image_menu_item</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="image_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImageMenuItem</doc> <type name="ImageMenuItem" c:type="GtkImageMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_use_stock" c:identifier="gtk_image_menu_item_get_use_stock" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Checks whether the label set in the menuitem is used as a stock id to select the stock item for the item.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the label set in the menuitem is used as a stock id to select the stock item for the item</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="image_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImageMenuItem</doc> <type name="ImageMenuItem" c:type="GtkImageMenuItem*"/> </instance-parameter> </parameters> </method> <method name="set_accel_group" c:identifier="gtk_image_menu_item_set_accel_group" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Specifies an @accel_group to add the menu items accelerator to (this only applies to stock items so a stock item must already be set, make sure to call gtk_image_menu_item_set_use_stock() and gtk_menu_item_set_label() with a valid stock item first). If you want this menu item to have changeable accelerators then you shouldnt need this (see gtk_image_menu_item_new_from_stock()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImageMenuItem</doc> <type name="ImageMenuItem" c:type="GtkImageMenuItem*"/> </instance-parameter> <parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">the #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> </parameters> </method> <method name="set_always_show_image" c:identifier="gtk_image_menu_item_set_always_show_image" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">If %TRUE, the menu item will ignore the #GtkSettings:gtk-menu-images setting and always show the image, if available. Use this property if the menuitem would be useless or hard to use without the image.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImageMenuItem</doc> <type name="ImageMenuItem" c:type="GtkImageMenuItem*"/> </instance-parameter> <parameter name="always_show" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menuitem should always show the image</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_image" c:identifier="gtk_image_menu_item_set_image" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the image of @image_menu_item to the given widget. Note that it depends on the show-menu-images setting whether the image will be displayed or not.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImageMenuItem.</doc> <type name="ImageMenuItem" c:type="GtkImageMenuItem*"/> </instance-parameter> <parameter name="image" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a widget to set as the image for the menu item.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_use_stock" c:identifier="gtk_image_menu_item_set_use_stock" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">If %TRUE, the label set in the menuitem is used as a stock id to select the stock item for the item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="image_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkImageMenuItem</doc> <type name="ImageMenuItem" c:type="GtkImageMenuItem*"/> </instance-parameter> <parameter name="use_stock" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menuitem should use a stock item</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="accel-group" version="2.16" deprecated="1" deprecated-version="3.10" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The Accel Group to use for stock accelerator keys</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_add_accelerator() instead</doc-deprecated> <type name="AccelGroup"/> </property> <property name="always-show-image" version="2.16" deprecated="1" deprecated-version="3.10" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, the menu item will always show the image, if available. Use this property only if the menuitem would be useless or hard to use without the image.</doc> <doc-deprecated xml:space="preserve">Use a #GtkMenuItem containing a #GtkBox with a #GtkAccelLabel and a #GtkImage instead</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="image" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Child widget to appear next to the menu text.</doc> <doc-deprecated xml:space="preserve">Use a #GtkMenuItem containing a #GtkBox with a #GtkAccelLabel and a #GtkImage instead</doc-deprecated> <type name="Widget"/> </property> <property name="use-stock" version="2.16" deprecated="1" deprecated-version="3.10" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, the label set in the menuitem is used as a stock id to select the stock item for the item.</doc> <doc-deprecated xml:space="preserve">Use a named icon from the #GtkIconTheme instead</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <field name="menu_item"> <type name="MenuItem" c:type="GtkMenuItem"/> </field> <field name="priv" readable="0" private="1"> <type name="ImageMenuItemPrivate" c:type="GtkImageMenuItemPrivate*"/> </field> </class> <record name="ImageMenuItemClass" c:type="GtkImageMenuItemClass" glib:is-gtype-struct-for="ImageMenuItem"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="MenuItemClass" c:type="GtkMenuItemClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ImageMenuItemPrivate" c:type="GtkImageMenuItemPrivate" disguised="1"> </record> <record name="ImagePrivate" c:type="GtkImagePrivate" disguised="1"> </record> <enumeration name="ImageType" glib:type-name="GtkImageType" glib:get-type="gtk_image_type_get_type" c:type="GtkImageType"> <doc xml:space="preserve">Describes the image data representation used by a #GtkImage. If you want to get the image from the widget, you can only get the currently-stored representation. e.g. if the gtk_image_get_storage_type() returns #GTK_IMAGE_PIXBUF, then you can call gtk_image_get_pixbuf() but not gtk_image_get_stock(). For empty images, you can request any storage type (call any of the "get" functions), but they will all return %NULL values.</doc> <member name="empty" value="0" c:identifier="GTK_IMAGE_EMPTY" glib:nick="empty"> <doc xml:space="preserve">there is no image displayed by the widget</doc> </member> <member name="pixbuf" value="1" c:identifier="GTK_IMAGE_PIXBUF" glib:nick="pixbuf"> <doc xml:space="preserve">the widget contains a #GdkPixbuf</doc> </member> <member name="stock" value="2" c:identifier="GTK_IMAGE_STOCK" glib:nick="stock"> <doc xml:space="preserve">the widget contains a [stock item name][gtkstock]</doc> </member> <member name="icon_set" value="3" c:identifier="GTK_IMAGE_ICON_SET" glib:nick="icon-set"> <doc xml:space="preserve">the widget contains a #GtkIconSet</doc> </member> <member name="animation" value="4" c:identifier="GTK_IMAGE_ANIMATION" glib:nick="animation"> <doc xml:space="preserve">the widget contains a #GdkPixbufAnimation</doc> </member> <member name="icon_name" value="5" c:identifier="GTK_IMAGE_ICON_NAME" glib:nick="icon-name"> <doc xml:space="preserve">the widget contains a named icon. This image type was added in GTK+ 2.6</doc> </member> <member name="gicon" value="6" c:identifier="GTK_IMAGE_GICON" glib:nick="gicon"> <doc xml:space="preserve">the widget contains a #GIcon. This image type was added in GTK+ 2.14</doc> </member> <member name="surface" value="7" c:identifier="GTK_IMAGE_SURFACE" glib:nick="surface"> <doc xml:space="preserve">the widget contains a #cairo_surface_t. This image type was added in GTK+ 3.10</doc> </member> </enumeration> <class name="InfoBar" c:symbol-prefix="info_bar" c:type="GtkInfoBar" parent="Box" glib:type-name="GtkInfoBar" glib:get-type="gtk_info_bar_get_type" glib:type-struct="InfoBarClass"> <doc xml:space="preserve">#GtkInfoBar is a widget that can be used to show messages to the user without showing a dialog. It is often temporarily shown at the top or bottom of a document. In contrast to #GtkDialog, which has a action area at the bottom, #GtkInfoBar has an action area at the side. The API of #GtkInfoBar is very similar to #GtkDialog, allowing you to add buttons to the action area with gtk_info_bar_add_button() or gtk_info_bar_new_with_buttons(). The sensitivity of action widgets can be controlled with gtk_info_bar_set_response_sensitive(). To add widgets to the main content area of a #GtkInfoBar, use gtk_info_bar_get_content_area() and add your widgets to the container. Similar to #GtkMessageDialog, the contents of a #GtkInfoBar can by classified as error message, warning, informational message, etc, by using gtk_info_bar_set_message_type(). GTK+ may use the message type to determine how the message is displayed. A simple example for using a #GtkInfoBar: |[<!-- language="C" --> GtkWidget *widget, *message_label, *content_area; GtkWidget *grid; GtkInfoBar *bar; // set up info bar widget = gtk_info_bar_new (); bar = GTK_INFO_BAR (widget); grid = gtk_grid_new (); gtk_widget_set_no_show_all (widget, TRUE); message_label = gtk_label_new (""); content_area = gtk_info_bar_get_content_area (bar); gtk_container_add (GTK_CONTAINER (content_area), message_label); gtk_info_bar_add_button (bar, _("_OK"), GTK_RESPONSE_OK); g_signal_connect (bar, "response", G_CALLBACK (gtk_widget_hide), NULL); gtk_grid_attach (GTK_GRID (grid), widget, 0, 2, 1, 1); // ... // show an error message gtk_label_set_text (GTK_LABEL (message_label), "An error occurred!"); gtk_info_bar_set_message_type (bar, GTK_MESSAGE_ERROR); gtk_widget_show (bar); ]| # GtkInfoBar as GtkBuildable The GtkInfoBar implementation of the GtkBuildable interface exposes the content area and action area as internal children with the names âcontent_areaâ and âaction_areaâ. GtkInfoBar supports a custom <action-widgets> element, which can contain multiple <action-widget> elements. The âresponseâ attribute specifies a numeric response, and the content of the element is the id of widget (which should be a child of the dialogs @action_area). # CSS nodes GtkInfoBar has a single CSS node with name infobar. The node may get one of the style classes .info, .warning, .error or .question, depending on the message type.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_info_bar_new" version="2.18"> <doc xml:space="preserve">Creates a new #GtkInfoBar object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkInfoBar object</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_buttons" c:identifier="gtk_info_bar_new_with_buttons" introspectable="0"> <doc xml:space="preserve">Creates a new #GtkInfoBar with buttons. Button text/response ID pairs should be listed, with a %NULL pointer ending the list. Button text can be either a stock ID such as %GTK_STOCK_OK, or some arbitrary text. 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 âresponseâ signal with the corresponding response ID.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkInfoBar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="first_button_text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">stock ID or text to go in first button, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">response ID for first button, then additional buttons, ending with %NULL</doc> <varargs/> </parameter> </parameters> </constructor> <virtual-method name="close"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="response" invoker="response" version="2.18"> <doc xml:space="preserve">Emits the âresponseâ signal with the given @response_id.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">a response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <method name="add_action_widget" c:identifier="gtk_info_bar_add_action_widget" version="2.18"> <doc xml:space="preserve">Add an activatable widget to the action area of a #GtkInfoBar, connecting a signal handler that will emit the #GtkInfoBar::response signal on the message area when the widget is activated. The widget is appended to the end of the message areas action area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">an activatable widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">response ID for @child</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="add_button" c:identifier="gtk_info_bar_add_button" version="2.18"> <doc xml:space="preserve">Adds a button with the given text and sets things up so that clicking the button will emit the âresponseâ signal with the given response_id. The button is appended to the end of the info bars's action area. The button widget is returned, but usually you don't need it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkButton widget that was added</doc> <type name="Button" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="button_text" transfer-ownership="none"> <doc xml:space="preserve">text of button</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">response ID for the button</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="add_buttons" c:identifier="gtk_info_bar_add_buttons" version="2.18" introspectable="0"> <doc xml:space="preserve">Adds more buttons, same as calling gtk_info_bar_add_button() repeatedly. The variable argument list should be %NULL-terminated as with gtk_info_bar_new_with_buttons(). Each button must have both text and response ID.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="first_button_text" transfer-ownership="none"> <doc xml:space="preserve">button text or stock ID</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">response ID for first button, then more text-response_id pairs, ending with %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="get_action_area" c:identifier="gtk_info_bar_get_action_area" version="2.18"> <doc xml:space="preserve">Returns the action area of @info_bar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action area</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> </parameters> </method> <method name="get_content_area" c:identifier="gtk_info_bar_get_content_area" version="2.18"> <doc xml:space="preserve">Returns the content area of @info_bar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the content area</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> </parameters> </method> <method name="get_message_type" c:identifier="gtk_info_bar_get_message_type" version="2.18"> <doc xml:space="preserve">Returns the message type of the message area.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the message type of the message area.</doc> <type name="MessageType" c:type="GtkMessageType"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> </parameters> </method> <method name="get_revealed" c:identifier="gtk_info_bar_get_revealed" version="3.22.29"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current value of the GtkInfoBar:revealed property.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> </parameters> </method> <method name="get_show_close_button" c:identifier="gtk_info_bar_get_show_close_button" version="3.10"> <doc xml:space="preserve">Returns whether the widget will display a standard close button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget displays standard close button</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> </parameters> </method> <method name="response" c:identifier="gtk_info_bar_response" version="2.18"> <doc xml:space="preserve">Emits the âresponseâ signal with the given @response_id.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">a response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_default_response" c:identifier="gtk_info_bar_set_default_response" version="2.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">a response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_message_type" c:identifier="gtk_info_bar_set_message_type" version="2.18"> <doc xml:space="preserve">Sets the message type of the message area. GTK+ uses this type to determine how the message is displayed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="message_type" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMessageType</doc> <type name="MessageType" c:type="GtkMessageType"/> </parameter> </parameters> </method> <method name="set_response_sensitive" c:identifier="gtk_info_bar_set_response_sensitive" version="2.18"> <doc xml:space="preserve">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 dialog buttons.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">a response ID</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">TRUE for sensitive</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_revealed" c:identifier="gtk_info_bar_set_revealed" version="3.22.29"> <doc xml:space="preserve">Sets the GtkInfoBar:revealed property to @revealed. This will cause @info_bar to show up with a slide-in transition. Note that this property does not automatically show @info_bar and thus wonât have any effect if it is invisible.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkActionBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="revealed" transfer-ownership="none"> <doc xml:space="preserve">The new value of the property</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_close_button" c:identifier="gtk_info_bar_set_show_close_button" version="3.10"> <doc xml:space="preserve">If true, a standard close button is shown. When clicked it emits the response %GTK_RESPONSE_CLOSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to include a close button</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="message-type" version="2.18" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The type of the message. The type may be used to determine the appearance of the info bar.</doc> <type name="MessageType"/> </property> <property name="revealed" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-close-button" version="3.10" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to include a standard close button.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="InfoBarPrivate" c:type="GtkInfoBarPrivate*"/> </field> <glib:signal name="close" when="last" action="1" version="2.18"> <doc xml:space="preserve">The ::close signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to dismiss the info bar. The default binding for this signal is the Escape key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="response" when="last" version="2.18"> <doc xml:space="preserve">Emitted when an action widget is clicked or the application programmer calls gtk_dialog_response(). The @response_id depends on which action widget was clicked.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">the response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> </class> <record name="InfoBarClass" c:type="GtkInfoBarClass" glib:is-gtype-struct-for="InfoBar"> <field name="parent_class"> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="response"> <callback name="response"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="info_bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInfoBar</doc> <type name="InfoBar" c:type="GtkInfoBar*"/> </parameter> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">a response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="close"> <callback name="close"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="info_bar" transfer-ownership="none"> <type name="InfoBar" c:type="GtkInfoBar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="InfoBarPrivate" c:type="GtkInfoBarPrivate" disguised="1"> </record> <bitfield name="InputHints" version="3.6" glib:type-name="GtkInputHints" glib:get-type="gtk_input_hints_get_type" c:type="GtkInputHints"> <doc xml:space="preserve">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 #GtkInputPurpose 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.</doc> <member name="none" value="0" c:identifier="GTK_INPUT_HINT_NONE" glib:nick="none"> <doc xml:space="preserve">No special behaviour suggested</doc> </member> <member name="spellcheck" value="1" c:identifier="GTK_INPUT_HINT_SPELLCHECK" glib:nick="spellcheck"> <doc xml:space="preserve">Suggest checking for typos</doc> </member> <member name="no_spellcheck" value="2" c:identifier="GTK_INPUT_HINT_NO_SPELLCHECK" glib:nick="no-spellcheck"> <doc xml:space="preserve">Suggest not checking for typos</doc> </member> <member name="word_completion" value="4" c:identifier="GTK_INPUT_HINT_WORD_COMPLETION" glib:nick="word-completion"> <doc xml:space="preserve">Suggest word completion</doc> </member> <member name="lowercase" value="8" c:identifier="GTK_INPUT_HINT_LOWERCASE" glib:nick="lowercase"> <doc xml:space="preserve">Suggest to convert all text to lowercase</doc> </member> <member name="uppercase_chars" value="16" c:identifier="GTK_INPUT_HINT_UPPERCASE_CHARS" glib:nick="uppercase-chars"> <doc xml:space="preserve">Suggest to capitalize all text</doc> </member> <member name="uppercase_words" value="32" c:identifier="GTK_INPUT_HINT_UPPERCASE_WORDS" glib:nick="uppercase-words"> <doc xml:space="preserve">Suggest to capitalize the first character of each word</doc> </member> <member name="uppercase_sentences" value="64" c:identifier="GTK_INPUT_HINT_UPPERCASE_SENTENCES" glib:nick="uppercase-sentences"> <doc xml:space="preserve">Suggest to capitalize the first word of each sentence</doc> </member> <member name="inhibit_osk" value="128" c:identifier="GTK_INPUT_HINT_INHIBIT_OSK" glib:nick="inhibit-osk"> <doc xml:space="preserve">Suggest to not show an onscreen keyboard (e.g for a calculator that already has all the keys).</doc> </member> <member name="vertical_writing" value="256" c:identifier="GTK_INPUT_HINT_VERTICAL_WRITING" glib:nick="vertical-writing"> <doc xml:space="preserve">The text is vertical. Since 3.18</doc> </member> <member name="emoji" value="512" c:identifier="GTK_INPUT_HINT_EMOJI" glib:nick="emoji"> <doc xml:space="preserve">Suggest offering Emoji support. Since 3.22.20</doc> </member> <member name="no_emoji" value="1024" c:identifier="GTK_INPUT_HINT_NO_EMOJI" glib:nick="no-emoji"> <doc xml:space="preserve">Suggest not offering Emoji support. Since 3.22.20</doc> </member> </bitfield> <enumeration name="InputPurpose" version="3.6" glib:type-name="GtkInputPurpose" glib:get-type="gtk_input_purpose_get_type" c:type="GtkInputPurpose"> <doc xml:space="preserve">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â.</doc> <member name="free_form" value="0" c:identifier="GTK_INPUT_PURPOSE_FREE_FORM" glib:nick="free-form"> <doc xml:space="preserve">Allow any character</doc> </member> <member name="alpha" value="1" c:identifier="GTK_INPUT_PURPOSE_ALPHA" glib:nick="alpha"> <doc xml:space="preserve">Allow only alphabetic characters</doc> </member> <member name="digits" value="2" c:identifier="GTK_INPUT_PURPOSE_DIGITS" glib:nick="digits"> <doc xml:space="preserve">Allow only digits</doc> </member> <member name="number" value="3" c:identifier="GTK_INPUT_PURPOSE_NUMBER" glib:nick="number"> <doc xml:space="preserve">Edited field expects numbers</doc> </member> <member name="phone" value="4" c:identifier="GTK_INPUT_PURPOSE_PHONE" glib:nick="phone"> <doc xml:space="preserve">Edited field expects phone number</doc> </member> <member name="url" value="5" c:identifier="GTK_INPUT_PURPOSE_URL" glib:nick="url"> <doc xml:space="preserve">Edited field expects URL</doc> </member> <member name="email" value="6" c:identifier="GTK_INPUT_PURPOSE_EMAIL" glib:nick="email"> <doc xml:space="preserve">Edited field expects email address</doc> </member> <member name="name" value="7" c:identifier="GTK_INPUT_PURPOSE_NAME" glib:nick="name"> <doc xml:space="preserve">Edited field expects the name of a person</doc> </member> <member name="password" value="8" c:identifier="GTK_INPUT_PURPOSE_PASSWORD" glib:nick="password"> <doc xml:space="preserve">Like @GTK_INPUT_PURPOSE_FREE_FORM, but characters are hidden</doc> </member> <member name="pin" value="9" c:identifier="GTK_INPUT_PURPOSE_PIN" glib:nick="pin"> <doc xml:space="preserve">Like @GTK_INPUT_PURPOSE_DIGITS, but characters are hidden</doc> </member> </enumeration> <class name="Invisible" c:symbol-prefix="invisible" c:type="GtkInvisible" parent="Widget" glib:type-name="GtkInvisible" glib:get-type="gtk_invisible_get_type" glib:type-struct="InvisibleClass"> <doc xml:space="preserve">The #GtkInvisible widget is used internally in GTK+, and is probably not very useful for application developers. It is used for reliable pointer grabs and selection handling in the code for drag-and-drop.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_invisible_new"> <doc xml:space="preserve">Creates a new #GtkInvisible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkInvisible.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_for_screen" c:identifier="gtk_invisible_new_for_screen" version="2.2"> <doc xml:space="preserve">Creates a new #GtkInvisible object for a specified screen</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkInvisible object</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen which identifies on which the new #GtkInvisible will be created.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </constructor> <method name="get_screen" c:identifier="gtk_invisible_get_screen" version="2.2"> <doc xml:space="preserve">Returns the #GdkScreen object associated with @invisible</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the associated #GdkScreen.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </return-value> <parameters> <instance-parameter name="invisible" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInvisible.</doc> <type name="Invisible" c:type="GtkInvisible*"/> </instance-parameter> </parameters> </method> <method name="set_screen" c:identifier="gtk_invisible_set_screen" version="2.2"> <doc xml:space="preserve">Sets the #GdkScreen where the #GtkInvisible object will be displayed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="invisible" transfer-ownership="none"> <doc xml:space="preserve">a #GtkInvisible.</doc> <type name="Invisible" c:type="GtkInvisible*"/> </instance-parameter> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </method> <property name="screen" writable="1" transfer-ownership="none"> <type name="Gdk.Screen"/> </property> <field name="widget"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="InvisiblePrivate" c:type="GtkInvisiblePrivate*"/> </field> </class> <record name="InvisibleClass" c:type="GtkInvisibleClass" glib:is-gtype-struct-for="Invisible"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="InvisiblePrivate" c:type="GtkInvisiblePrivate" disguised="1"> </record> <bitfield name="JunctionSides" glib:type-name="GtkJunctionSides" glib:get-type="gtk_junction_sides_get_type" c:type="GtkJunctionSides"> <doc xml:space="preserve">Describes how a rendered element connects to adjacent elements.</doc> <member name="none" value="0" c:identifier="GTK_JUNCTION_NONE" glib:nick="none"> <doc xml:space="preserve">No junctions.</doc> </member> <member name="corner_topleft" value="1" c:identifier="GTK_JUNCTION_CORNER_TOPLEFT" glib:nick="corner-topleft"> <doc xml:space="preserve">Element connects on the top-left corner.</doc> </member> <member name="corner_topright" value="2" c:identifier="GTK_JUNCTION_CORNER_TOPRIGHT" glib:nick="corner-topright"> <doc xml:space="preserve">Element connects on the top-right corner.</doc> </member> <member name="corner_bottomleft" value="4" c:identifier="GTK_JUNCTION_CORNER_BOTTOMLEFT" glib:nick="corner-bottomleft"> <doc xml:space="preserve">Element connects on the bottom-left corner.</doc> </member> <member name="corner_bottomright" value="8" c:identifier="GTK_JUNCTION_CORNER_BOTTOMRIGHT" glib:nick="corner-bottomright"> <doc xml:space="preserve">Element connects on the bottom-right corner.</doc> </member> <member name="top" value="3" c:identifier="GTK_JUNCTION_TOP" glib:nick="top"> <doc xml:space="preserve">Element connects on the top side.</doc> </member> <member name="bottom" value="12" c:identifier="GTK_JUNCTION_BOTTOM" glib:nick="bottom"> <doc xml:space="preserve">Element connects on the bottom side.</doc> </member> <member name="left" value="5" c:identifier="GTK_JUNCTION_LEFT" glib:nick="left"> <doc xml:space="preserve">Element connects on the left side.</doc> </member> <member name="right" value="10" c:identifier="GTK_JUNCTION_RIGHT" glib:nick="right"> <doc xml:space="preserve">Element connects on the right side.</doc> </member> </bitfield> <enumeration name="Justification" glib:type-name="GtkJustification" glib:get-type="gtk_justification_get_type" c:type="GtkJustification"> <doc xml:space="preserve">Used for justifying the text inside a #GtkLabel widget. (See also #GtkAlignment).</doc> <member name="left" value="0" c:identifier="GTK_JUSTIFY_LEFT" glib:nick="left"> <doc xml:space="preserve">The text is placed at the left edge of the label.</doc> </member> <member name="right" value="1" c:identifier="GTK_JUSTIFY_RIGHT" glib:nick="right"> <doc xml:space="preserve">The text is placed at the right edge of the label.</doc> </member> <member name="center" value="2" c:identifier="GTK_JUSTIFY_CENTER" glib:nick="center"> <doc xml:space="preserve">The text is placed in the center of the label.</doc> </member> <member name="fill" value="3" c:identifier="GTK_JUSTIFY_FILL" glib:nick="fill"> <doc xml:space="preserve">The text is placed is distributed across the label.</doc> </member> </enumeration> <callback name="KeySnoopFunc" c:type="GtkKeySnoopFunc"> <doc xml:space="preserve">Key snooper functions are called before normal event delivery. They can be used to implement custom key event handling.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop further processing of @event, %FALSE to continue.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="grab_widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to which the event will be delivered</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the key event</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> <parameter name="func_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">data supplied to gtk_key_snooper_install()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <constant name="LEVEL_BAR_OFFSET_FULL" value="full" c:type="GTK_LEVEL_BAR_OFFSET_FULL" version="3.20"> <doc xml:space="preserve">The name used for the stock full offset included by #GtkLevelBar.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="LEVEL_BAR_OFFSET_HIGH" value="high" c:type="GTK_LEVEL_BAR_OFFSET_HIGH" version="3.6"> <doc xml:space="preserve">The name used for the stock high offset included by #GtkLevelBar.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="LEVEL_BAR_OFFSET_LOW" value="low" c:type="GTK_LEVEL_BAR_OFFSET_LOW" version="3.6"> <doc xml:space="preserve">The name used for the stock low offset included by #GtkLevelBar.</doc> <type name="utf8" c:type="gchar*"/> </constant> <class name="Label" c:symbol-prefix="label" c:type="GtkLabel" parent="Misc" glib:type-name="GtkLabel" glib:get-type="gtk_label_get_type" glib:type-struct="LabelClass"> <doc xml:space="preserve">The #GtkLabel widget displays a small amount of text. As the name implies, most labels are used to label another widget such as a #GtkButton, a #GtkMenuItem, or a #GtkComboBox. # CSS nodes |[<!-- language="plain" --> label âââ [selection] âââ [link] â â°ââ [link] ]| GtkLabel has a single CSS node with the name label. A wide variety of style classes may be applied to labels, such as .title, .subtitle, .dim-label, etc. In the #GtkShortcutsWindow, labels are used wth the .keycap style class. If the label has a selection, it gets a subnode with name selection. If the label has links, there is one subnode per link. These subnodes carry the link or visited state depending on whether they have been visited. # GtkLabel as GtkBuildable The GtkLabel implementation of the GtkBuildable interface supports a custom <attributes> element, which supports any number of <attribute> elements. The <attribute> element has attributes named ânameâ, âvalueâ, âstartâ and âendâ and allows you to specify #PangoAttribute values for this label. An example of a UI definition fragment specifying Pango attributes: |[ <object class="GtkLabel"> <attributes> <attribute name="weight" value="PANGO_WEIGHT_BOLD"/> <attribute name="background" value="red" start="5" end="10"/> </attributes> </object> ]| The start and end attributes specify the range of characters to which the Pango attribute applies. If start and end are not specified, the attribute is applied to the whole text. Note that specifying ranges does not make much sense with translatable attributes. Use markup embedded in the translatable content instead. # Mnemonics Labels may contain âmnemonicsâ. Mnemonics are underlined characters in the label, used for keyboard navigation. Mnemonics are created by providing a string with an underscore before the mnemonic character, such as `"_File"`, to the functions gtk_label_new_with_mnemonic() or gtk_label_set_text_with_mnemonic(). Mnemonics automatically activate any activatable widget the label is inside, such as a #GtkButton; if the label is not inside the mnemonicâs target widget, you have to tell the label about the target using gtk_label_set_mnemonic_widget(). Hereâs a simple example where the label is inside a button: |[<!-- language="C" --> // Pressing Alt+H will activate this button GtkWidget *button = gtk_button_new (); GtkWidget *label = gtk_label_new_with_mnemonic ("_Hello"); gtk_container_add (GTK_CONTAINER (button), label); ]| Thereâs a convenience function to create buttons with a mnemonic label already inside: |[<!-- language="C" --> // Pressing Alt+H will activate this button GtkWidget *button = gtk_button_new_with_mnemonic ("_Hello"); ]| To create a mnemonic for a widget alongside the label, such as a #GtkEntry, you have to point the label at the entry with gtk_label_set_mnemonic_widget(): |[<!-- language="C" --> // Pressing Alt+H will focus the entry GtkWidget *entry = gtk_entry_new (); GtkWidget *label = gtk_label_new_with_mnemonic ("_Hello"); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); ]| # Markup (styled text) To make it easy to format text in a label (changing colors, fonts, etc.), label text can be provided in a simple [markup format][PangoMarkupFormat]. Hereâs how to create a label with a small font: |[<!-- language="C" --> GtkWidget *label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<small>Small text</small>"); ]| (See [complete documentation][PangoMarkupFormat] of available tags in the Pango manual.) The markup passed to gtk_label_set_markup() must be valid; for example, literal <, > and & characters must be escaped as &lt;, &gt;, and &amp;. If you pass text obtained from the user, file, or a network to gtk_label_set_markup(), youâll want to escape it with g_markup_escape_text() or g_markup_printf_escaped(). Markup strings are just a convenient way to set the #PangoAttrList on a label; gtk_label_set_attributes() may be a simpler way to set attributes in some cases. Be careful though; #PangoAttrList tends to cause internationalization problems, unless youâre applying attributes to the entire string (i.e. unless you set the range of each attribute to [0, %G_MAXINT)). The reason is that specifying the start_index and end_index for a #PangoAttribute requires knowledge of the exact string being displayed, so translations will cause problems. # Selectable labels Labels can be made selectable with gtk_label_set_selectable(). Selectable labels allow the user to copy the label contents to the clipboard. Only labels that contain useful-to-copy information â such as error messages â should be made selectable. # Text layout # {#label-text-layout} A label can contain any number of paragraphs, but will have performance problems if it contains more than a small number. Paragraphs are separated by newlines or other paragraph separators understood by Pango. Labels can automatically wrap text if you call gtk_label_set_line_wrap(). gtk_label_set_justify() sets how the lines in a label align with one another. If you want to set how the label as a whole aligns in its available space, see the #GtkWidget:halign and #GtkWidget:valign properties. The #GtkLabel:width-chars and #GtkLabel:max-width-chars properties can be used to control the size allocation of ellipsized or wrapped labels. For ellipsizing labels, if either is specified (and less than the actual text size), it is used as the minimum width, and the actual text size is used as the natural width of the label. For wrapping labels, width-chars is used as the minimum width, if specified, and max-width-chars is used as the natural width. Even if max-width-chars specified, wrapping labels will be rewrapped to use all of the available width. Note that the interpretation of #GtkLabel:width-chars and #GtkLabel:max-width-chars has changed a bit with the introduction of [width-for-height geometry management.][geometry-management] # Links Since 2.18, GTK+ supports markup for clickable hyperlinks in addition to regular Pango markup. The markup for links is borrowed from HTML, using the `<a>` with âhrefâ and âtitleâ attributes. GTK+ renders links similar to the way they appear in web browsers, with colored, underlined text. The âtitleâ attribute is displayed as a tooltip on the link. An example looks like this: |[<!-- language="C" --> const gchar *text = "Go to the" "<a href=\"http://www.gtk.org title=\"&lt;i&gt;Our&lt;/i&gt; website\">" "GTK+ website</a> for more..."; GtkWidget *label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), text); ]| It is possible to implement custom handling for links and their tooltips with the #GtkLabel::activate-link signal and the gtk_label_get_current_uri() function.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_label_new"> <doc xml:space="preserve">Creates a new label with the given text inside it. You can pass %NULL to get an empty label widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkLabel</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="str" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The text of the label</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_label_new_with_mnemonic"> <doc xml:space="preserve">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 gtk_label_set_mnemonic_widget(). If 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkLabel</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="str" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The text of the label, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="activate_link"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="copy_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="move_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="populate_popup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="menu" transfer-ownership="none"> <type name="Menu" c:type="GtkMenu*"/> </parameter> </parameters> </virtual-method> <method name="get_angle" c:identifier="gtk_label_get_angle" version="2.6"> <doc xml:space="preserve">Gets the angle of rotation for the label. See gtk_label_set_angle().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the angle of rotation for the label</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_attributes" c:identifier="gtk_label_get_attributes"> <doc xml:space="preserve">Gets the attribute list that was set on the label using gtk_label_set_attributes(), if any. This function does not reflect attributes that come from the labels markup (see gtk_label_set_markup()). If you want to get the effective attributes for the label, use pango_layout_get_attribute (gtk_label_get_layout (label)).</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the attribute list, or %NULL if none was set.</doc> <type name="Pango.AttrList" c:type="PangoAttrList*"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_current_uri" c:identifier="gtk_label_get_current_uri" version="2.18"> <doc xml:space="preserve">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 #GtkLabel::activate-link handler or for use in a #GtkWidget::query-tooltip handler.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the currently active URI. The string is owned by GTK+ and must not be freed or modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_ellipsize" c:identifier="gtk_label_get_ellipsize" version="2.6"> <doc xml:space="preserve">Returns the ellipsizing position of the label. See gtk_label_set_ellipsize().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">#PangoEllipsizeMode</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_justify" c:identifier="gtk_label_get_justify"> <doc xml:space="preserve">Returns the justification of the label. See gtk_label_set_justify().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">#GtkJustification</doc> <type name="Justification" c:type="GtkJustification"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_label" c:identifier="gtk_label_get_label"> <doc xml:space="preserve">Fetches the text from a label widget including any embedded underlines indicating mnemonics and Pango markup. (See gtk_label_get_text()).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the text of the label widget. This string is owned by the widget and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_layout" c:identifier="gtk_label_get_layout"> <doc xml:space="preserve">Gets the #PangoLayout used to display the label. The layout is useful to e.g. convert text positions to pixel positions, in combination with 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #PangoLayout for this label</doc> <type name="Pango.Layout" c:type="PangoLayout*"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_layout_offsets" c:identifier="gtk_label_get_layout_offsets"> <doc xml:space="preserve">Obtains the coordinates where the label will draw the #PangoLayout representing the text in the label; useful to convert mouse events into coordinates inside the #PangoLayout, e.g. to take some action if some part of the label is clicked. Of course you will need to create a #GtkEventBox to receive the events, and pack the label inside it, since labels are windowless (they return %FALSE from gtk_widget_get_has_window()). Remember when using the #PangoLayout functions you need to convert to and from pixels using PANGO_PIXELS() or #PANGO_SCALE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store Y offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_line_wrap" c:identifier="gtk_label_get_line_wrap"> <doc xml:space="preserve">Returns whether lines in the label are automatically wrapped. See gtk_label_set_line_wrap().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the lines of the label are automatically wrapped.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_line_wrap_mode" c:identifier="gtk_label_get_line_wrap_mode" version="2.10"> <doc xml:space="preserve">Returns line wrap mode used by the label. See gtk_label_set_line_wrap_mode().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the lines of the label are automatically wrapped.</doc> <type name="Pango.WrapMode" c:type="PangoWrapMode"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_lines" c:identifier="gtk_label_get_lines" version="3.10"> <doc xml:space="preserve">Gets the number of lines to which an ellipsized, wrapping label should be limited. See gtk_label_set_lines().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of lines</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_max_width_chars" c:identifier="gtk_label_get_max_width_chars" version="2.6"> <doc xml:space="preserve">Retrieves the desired maximum width of @label, in characters. See gtk_label_set_width_chars().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the maximum width of the label in characters.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_mnemonic_keyval" c:identifier="gtk_label_get_mnemonic_keyval"> <doc xml:space="preserve">If the label has been set so that it has an mnemonic key this function returns the keyval used for the mnemonic accelerator. If there is no mnemonic set up it returns #GDK_KEY_VoidSymbol.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">GDK keyval usable for accelerators, or #GDK_KEY_VoidSymbol</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_mnemonic_widget" c:identifier="gtk_label_get_mnemonic_widget"> <doc xml:space="preserve">Retrieves the target of the mnemonic (keyboard shortcut) of this label. See gtk_label_set_mnemonic_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the target of the labelâs mnemonic, or %NULL if none has been set and the default algorithm will be used.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_selectable" c:identifier="gtk_label_get_selectable"> <doc xml:space="preserve">Gets the value set by gtk_label_set_selectable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the user can copy text from the label</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_selection_bounds" c:identifier="gtk_label_get_selection_bounds"> <doc xml:space="preserve">Gets the selected range of characters in the label, returning %TRUE if thereâs a selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if selection is non-empty</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="start" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for start of selection, as a character offset</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="end" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for end of selection, as a character offset</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_single_line_mode" c:identifier="gtk_label_get_single_line_mode" version="2.6"> <doc xml:space="preserve">Returns whether the label is in single line mode.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE when the label is in single line mode.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_text" c:identifier="gtk_label_get_text"> <doc xml:space="preserve">Fetches the text from a label widget, as displayed on the screen. This does not include any embedded underlines indicating mnemonics or Pango markup. (See gtk_label_get_label())</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the text in the label widget. This is the internal string used by the label, and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_track_visited_links" c:identifier="gtk_label_get_track_visited_links" version="2.18"> <doc xml:space="preserve">Returns whether the label is currently keeping track of clicked links.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if clicked links are remembered</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_use_markup" c:identifier="gtk_label_get_use_markup"> <doc xml:space="preserve">Returns whether the labelâs text is interpreted as marked up with the [Pango text markup language][PangoMarkupFormat]. See gtk_label_set_use_markup ().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the labelâs text will be parsed for markup.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_use_underline" c:identifier="gtk_label_get_use_underline"> <doc xml:space="preserve">Returns whether an embedded underline in the label indicates a mnemonic. See gtk_label_set_use_underline().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE whether an embedded underline in the label indicates the mnemonic accelerator keys.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_width_chars" c:identifier="gtk_label_get_width_chars" version="2.6"> <doc xml:space="preserve">Retrieves the desired width of @label, in characters. See gtk_label_set_width_chars().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the width of the label in characters.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_xalign" c:identifier="gtk_label_get_xalign" version="3.16"> <doc xml:space="preserve">Gets the #GtkLabel:xalign property for @label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the xalign property</doc> <type name="gfloat" c:type="gfloat"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="get_yalign" c:identifier="gtk_label_get_yalign" version="3.16"> <doc xml:space="preserve">Gets the #GtkLabel:yalign property for @label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the yalign property</doc> <type name="gfloat" c:type="gfloat"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> </parameters> </method> <method name="select_region" c:identifier="gtk_label_select_region"> <doc xml:space="preserve">Selects a range of characters in the label, if the label is selectable. See 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="start_offset" transfer-ownership="none"> <doc xml:space="preserve">start offset (in characters not bytes)</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="end_offset" transfer-ownership="none"> <doc xml:space="preserve">end offset (in characters not bytes)</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_angle" c:identifier="gtk_label_set_angle" version="2.6"> <doc xml:space="preserve">Sets the angle of rotation for the label. An angle of 90 reads from from bottom to top, an angle of 270, from top to bottom. The angle setting for the label is ignored if the label is selectable, wrapped, or ellipsized.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="angle" transfer-ownership="none"> <doc xml:space="preserve">the angle that the baseline of the label makes with the horizontal, in degrees, measured counterclockwise</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_attributes" c:identifier="gtk_label_set_attributes"> <doc xml:space="preserve">Sets a #PangoAttrList; the attributes in the list are applied 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 #GtkLabel:use-underline or #GtkLabel: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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="attrs" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #PangoAttrList, or %NULL</doc> <type name="Pango.AttrList" c:type="PangoAttrList*"/> </parameter> </parameters> </method> <method name="set_ellipsize" c:identifier="gtk_label_set_ellipsize" version="2.6"> <doc xml:space="preserve">Sets the mode used to ellipsize (add an ellipsis: "...") to the text if there is not enough space to render the entire string.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">a #PangoEllipsizeMode</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </parameter> </parameters> </method> <method name="set_justify" c:identifier="gtk_label_set_justify"> <doc xml:space="preserve">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 gtk_label_new(). If you instead want to set the alignment of the label as a whole, use gtk_widget_set_halign() instead. gtk_label_set_justify() has no effect on labels containing only a single line.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="jtype" transfer-ownership="none"> <doc xml:space="preserve">a #GtkJustification</doc> <type name="Justification" c:type="GtkJustification"/> </parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_label_set_label"> <doc xml:space="preserve">Sets the text of the label. The label is interpreted as including embedded underlines and/or Pango markup depending on the values of the #GtkLabel:use-underline and #GtkLabel:use-markup properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">the new text to set for the label</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_line_wrap" c:identifier="gtk_label_set_line_wrap"> <doc xml:space="preserve">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 gtk_widget_set_size_request().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="wrap" transfer-ownership="none"> <doc xml:space="preserve">the setting</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_line_wrap_mode" c:identifier="gtk_label_set_line_wrap_mode" version="2.10"> <doc xml:space="preserve">If line wrapping is on (see gtk_label_set_line_wrap()) this controls how the line wrapping is done. The default is %PANGO_WRAP_WORD which means wrap on word boundaries.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="wrap_mode" transfer-ownership="none"> <doc xml:space="preserve">the line wrapping mode</doc> <type name="Pango.WrapMode" c:type="PangoWrapMode"/> </parameter> </parameters> </method> <method name="set_lines" c:identifier="gtk_label_set_lines" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="lines" transfer-ownership="none"> <doc xml:space="preserve">the desired number of lines, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_markup" c:identifier="gtk_label_set_markup"> <doc xml:space="preserve">Parses @str which is marked up with the [Pango text markup language][PangoMarkupFormat], setting the labelâs text and attribute list based on the parse results. If the @str is external data, you may need to escape it with g_markup_escape_text() or g_markup_printf_escaped(): |[<!-- language="C" --> GtkWidget *label = gtk_label_new (NULL); const char *str = "some text"; const char *format = "<span style=\"italic\">\%s</span>"; char *markup; markup = g_markup_printf_escaped (format, str); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); ]| This function will set the #GtkLabel:use-markup property to %TRUE as a side effect. If you set the label contents using the #GtkLabel:label property you should also ensure that you set the #GtkLabel:use-markup property accordingly. See also: gtk_label_set_text()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">a markup string (see [Pango markup format][PangoMarkupFormat])</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_markup_with_mnemonic" c:identifier="gtk_label_set_markup_with_mnemonic"> <doc xml:space="preserve">Parses @str which is marked up with the [Pango text markup language][PangoMarkupFormat], 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 gtk_label_set_mnemonic_widget().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">a markup string (see [Pango markup format][PangoMarkupFormat])</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_max_width_chars" c:identifier="gtk_label_set_max_width_chars" version="2.6"> <doc xml:space="preserve">Sets the desired maximum width in characters of @label to @n_chars.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the new desired maximum width, in characters.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_mnemonic_widget" c:identifier="gtk_label_set_mnemonic_widget"> <doc xml:space="preserve">If the label has been set so that it has an mnemonic key (using i.e. gtk_label_set_markup_with_mnemonic(), gtk_label_set_text_with_mnemonic(), gtk_label_new_with_mnemonic() or the â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 #GtkButton or a #GtkNotebook tab) it is automatically associated with the correct widget, but sometimes (i.e. when the target is a #GtkEntry next to the label) you need to set it explicitly using this function. The target widget will be accelerated by emitting the GtkWidget::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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the target #GtkWidget, or %NULL to unset</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_pattern" c:identifier="gtk_label_set_pattern"> <doc xml:space="preserve">The pattern of underlines you want under the existing text within the #GtkLabel widget. For example if the current text of the label says âFooBarBazâ passing a pattern of â___ ___â will underline âFooâ and âBazâ but not âBarâ.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">The #GtkLabel you want to set the pattern to.</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="pattern" transfer-ownership="none"> <doc xml:space="preserve">The pattern as described above.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_selectable" c:identifier="gtk_label_set_selectable"> <doc xml:space="preserve">Selectable labels allow the user to select text from the label, for copy-and-paste.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to allow selecting text in the label</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_single_line_mode" c:identifier="gtk_label_set_single_line_mode" version="2.6"> <doc xml:space="preserve">Sets whether the label is in single line mode.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="single_line_mode" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the label should be in single line mode</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_text" c:identifier="gtk_label_set_text"> <doc xml:space="preserve">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 #GtkLabel:use-underline property to %FALSE as a side effect. This function will set the #GtkLabel:use-markup property to %FALSE as a side effect. See also: gtk_label_set_markup()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">The text you want to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_text_with_mnemonic" c:identifier="gtk_label_set_text_with_mnemonic"> <doc xml:space="preserve">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 gtk_label_set_mnemonic_widget().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">a string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_track_visited_links" c:identifier="gtk_label_set_track_visited_links" version="2.18"> <doc xml:space="preserve">Sets whether the label should keep track of clicked links (and use a different color for them).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="track_links" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to track visited links</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_use_markup" c:identifier="gtk_label_set_use_markup"> <doc xml:space="preserve">Sets whether the text of the label contains markup in [Pangoâs text markup language][PangoMarkupFormat]. See gtk_label_set_markup().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the labelâs text should be parsed for markup.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_use_underline" c:identifier="gtk_label_set_use_underline"> <doc xml:space="preserve">If true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if underlines in the text indicate mnemonics</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_width_chars" c:identifier="gtk_label_set_width_chars" version="2.6"> <doc xml:space="preserve">Sets the desired width in characters of @label to @n_chars.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="n_chars" transfer-ownership="none"> <doc xml:space="preserve">the new desired width, in characters.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_xalign" c:identifier="gtk_label_set_xalign" version="3.16"> <doc xml:space="preserve">Sets the #GtkLabel:xalign property for @label.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">the new xalign value, between 0 and 1</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="set_yalign" c:identifier="gtk_label_set_yalign" version="3.16"> <doc xml:space="preserve">Sets the #GtkLabel:yalign property for @label.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLabel</doc> <type name="Label" c:type="GtkLabel*"/> </instance-parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">the new yalign value, between 0 and 1</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <property name="angle" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The angle that the baseline of the label makes with the horizontal, in degrees, measured counterclockwise. An angle of 90 reads from from bottom to top, an angle of 270, from top to bottom. Ignored if the label is selectable.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="attributes" writable="1" transfer-ownership="none"> <type name="Pango.AttrList"/> </property> <property name="cursor-position" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="ellipsize" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The preferred place to ellipsize the string, if the label 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 label requests only enough space to display the ellipsis "...". In particular, this means that ellipsizing labels do not work well in notebook tabs, unless the #GtkNotebook tab-expand child property is set to %TRUE. Other ways to set a label's width are gtk_widget_set_size_request() and gtk_label_set_width_chars().</doc> <type name="Pango.EllipsizeMode"/> </property> <property name="justify" writable="1" transfer-ownership="none"> <type name="Justification"/> </property> <property name="label" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The contents of the label. If the string contains [Pango XML markup][PangoMarkupFormat], you will have to set the #GtkLabel:use-markup property to %TRUE in order for the label to display the markup attributes. See also gtk_label_set_markup() for a convenience function that sets both this property and the #GtkLabel:use-markup property at the same time. If the string contains underlines acting as mnemonics, you will have to set the #GtkLabel:use-underline property to %TRUE in order for the label to display them.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="lines" version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="max-width-chars" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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][label-text-layout] for details of how #GtkLabel:width-chars and #GtkLabel:max-width-chars determine the width of ellipsized and wrapped labels.</doc> <type name="gint" c:type="gint"/> </property> <property name="mnemonic-keyval" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="mnemonic-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="pattern" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="selectable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="selection-bound" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="single-line-mode" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="track-visited-links" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Set this property to %TRUE to make the label track which links have been visited. It will then apply the #GTK_STATE_FLAG_VISITED when rendering this link, in addition to #GTK_STATE_FLAG_LINK.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="use-markup" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="use-underline" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="width-chars" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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][label-text-layout] for details of how #GtkLabel:width-chars and #GtkLabel:max-width-chars determine the width of ellipsized and wrapped labels.</doc> <type name="gint" c:type="gint"/> </property> <property name="wrap" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="wrap-mode" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If line wrapping is on (see the #GtkLabel:wrap property) this controls how the line wrapping is done. The default is %PANGO_WRAP_WORD, which means wrap on word boundaries.</doc> <type name="Pango.WrapMode"/> </property> <property name="xalign" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The xalign property determines the horizontal aligment of the label text inside the labels size allocation. Compare this to #GtkWidget:halign, which determines how the labels size allocation is positioned in the space available for the label.</doc> <type name="gfloat" c:type="gfloat"/> </property> <property name="yalign" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The yalign property determines the vertical aligment of the label text inside the labels size allocation. Compare this to #GtkWidget:valign, which determines how the labels size allocation is positioned in the space available for the label.</doc> <type name="gfloat" c:type="gfloat"/> </property> <field name="misc"> <type name="Misc" c:type="GtkMisc"/> </field> <field name="priv" readable="0" private="1"> <type name="LabelPrivate" c:type="GtkLabelPrivate*"/> </field> <glib:signal name="activate-current-link" when="last" action="1" version="2.18"> <doc xml:space="preserve">A [keybinding signal][GtkBindingSignal] which gets emitted when the user activates a link in the label. 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 Enter key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="activate-link" when="last" version="2.18"> <doc xml:space="preserve">The signal which gets emitted to activate a URI. Applications may connect to it to override the default behaviour, which is to call gtk_show_uri_on_window().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the link has been activated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the URI that is activated</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="copy-clipboard" when="last" action="1"> <doc xml:space="preserve">The ::copy-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to copy the selection to the clipboard. The default binding for this signal is Ctrl-c.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="move-cursor" when="last" action="1"> <doc xml:space="preserve">The ::move-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement. 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 modifer does not. There are too many key combinations to list them all here. - Arrow keys move by individual characters/lines - Ctrl-arrow key combinations move by words/paragraphs - Home/End keys move to the ends of the buffer</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">the granularity of the move, as a #GtkMovementStep</doc> <type name="MovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">the number of @step units to move</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the move should extend the selection</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="populate-popup" when="last"> <doc xml:space="preserve">The ::populate-popup signal gets emitted before showing the context menu of the label. Note that only selectable labels have context menus. If you need to add items to the context menu, connect to this signal and append your menuitems to the @menu.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">the menu that is being populated</doc> <type name="Menu"/> </parameter> </parameters> </glib:signal> </class> <class name="LabelAccessible" c:symbol-prefix="label_accessible" c:type="GtkLabelAccessible" parent="WidgetAccessible" glib:type-name="GtkLabelAccessible" glib:get-type="gtk_label_accessible_get_type" glib:type-struct="LabelAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Hypertext"/> <implements name="Atk.Text"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="LabelAccessiblePrivate" c:type="GtkLabelAccessiblePrivate*"/> </field> </class> <record name="LabelAccessibleClass" c:type="GtkLabelAccessibleClass" glib:is-gtype-struct-for="LabelAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="LabelAccessiblePrivate" c:type="GtkLabelAccessiblePrivate" disguised="1"> </record> <record name="LabelClass" c:type="GtkLabelClass" glib:is-gtype-struct-for="Label"> <field name="parent_class"> <type name="MiscClass" c:type="GtkMiscClass"/> </field> <field name="move_cursor"> <callback name="move_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <type name="Label" c:type="GtkLabel*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="copy_clipboard"> <callback name="copy_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <type name="Label" c:type="GtkLabel*"/> </parameter> </parameters> </callback> </field> <field name="populate_popup"> <callback name="populate_popup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <type name="Label" c:type="GtkLabel*"/> </parameter> <parameter name="menu" transfer-ownership="none"> <type name="Menu" c:type="GtkMenu*"/> </parameter> </parameters> </callback> </field> <field name="activate_link"> <callback name="activate_link"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <type name="Label" c:type="GtkLabel*"/> </parameter> <parameter name="uri" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="LabelPrivate" c:type="GtkLabelPrivate" disguised="1"> </record> <record name="LabelSelectionInfo" c:type="GtkLabelSelectionInfo" disguised="1"> </record> <class name="Layout" c:symbol-prefix="layout" c:type="GtkLayout" parent="Container" glib:type-name="GtkLayout" glib:get-type="gtk_layout_get_type" glib:type-struct="LayoutClass"> <doc xml:space="preserve">#GtkLayout is similar to #GtkDrawingArea in that itâs a âblank slateâ and doesnât do anything except paint a blank background by default. Itâs different in that it supports scrolling natively due to implementing #GtkScrollable, and can contain child widgets since itâs a #GtkContainer. If you just want to draw, a #GtkDrawingArea is a better choice since it has lower overhead. If you just need to position child widgets at specific points, then #GtkFixed provides that functionality on its own. When handling expose events on a #GtkLayout, you must draw to the #GdkWindow returned by gtk_layout_get_bin_window(), rather than to the one returned by gtk_widget_get_window() as you would for a #GtkDrawingArea.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Scrollable"/> <constructor name="new" c:identifier="gtk_layout_new"> <doc xml:space="preserve">Creates a new #GtkLayout. Unless you have a specific adjustment youâd like the layout to use for scrolling, pass %NULL for @hadjustment and @vadjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkLayout</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="hadjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">horizontal scroll adjustment, or %NULL</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> <parameter name="vadjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">vertical scroll adjustment, or %NULL</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <method name="get_bin_window" c:identifier="gtk_layout_get_bin_window" version="2.14"> <doc xml:space="preserve">Retrieve the bin window of the layout used for drawing operations.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> </parameters> </method> <method name="get_hadjustment" c:identifier="gtk_layout_get_hadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">This function should only be called after the layout has been placed in a #GtkScrolledWindow or otherwise configured for scrolling. It returns the #GtkAdjustment used for communication between the horizontal scrollbar and @layout. See #GtkScrolledWindow, #GtkScrollbar, #GtkAdjustment for details.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_hadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">horizontal scroll adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> </parameters> </method> <method name="get_size" c:identifier="gtk_layout_get_size"> <doc xml:space="preserve">Gets the size that has been set on the layout, and that determines the total extents of the layoutâs scrollbar area. See gtk_layout_set_size ().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the width set on @layout, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the height set on @layout, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> <method name="get_vadjustment" c:identifier="gtk_layout_get_vadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">This function should only be called after the layout has been placed in a #GtkScrolledWindow or otherwise configured for scrolling. It returns the #GtkAdjustment used for communication between the vertical scrollbar and @layout. See #GtkScrolledWindow, #GtkScrollbar, #GtkAdjustment for details.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_vadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">vertical scroll adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> </parameters> </method> <method name="move" c:identifier="gtk_layout_move"> <doc xml:space="preserve">Moves a current child of @layout to a new position.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> <parameter name="child_widget" transfer-ownership="none"> <doc xml:space="preserve">a current child of @layout</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X position to move to</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y position to move to</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="put" c:identifier="gtk_layout_put"> <doc xml:space="preserve">Adds @child_widget to @layout, at position (@x,@y). @layout becomes the new parent container of @child_widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> <parameter name="child_widget" transfer-ownership="none"> <doc xml:space="preserve">child widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X position of child widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y position of child widget</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_hadjustment" c:identifier="gtk_layout_set_hadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the horizontal scroll adjustment for the layout. See #GtkScrolledWindow, #GtkScrollbar, #GtkAdjustment for details.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_set_hadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">new scroll adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_size" c:identifier="gtk_layout_set_size"> <doc xml:space="preserve">Sets the size of the scrollable area of the layout.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width of entire scrollable area</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height of entire scrollable area</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_vadjustment" c:identifier="gtk_layout_set_vadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the vertical scroll adjustment for the layout. See #GtkScrolledWindow, #GtkScrollbar, #GtkAdjustment for details.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_set_vadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLayout</doc> <type name="Layout" c:type="GtkLayout*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">new scroll adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <property name="height" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="width" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="LayoutPrivate" c:type="GtkLayoutPrivate*"/> </field> </class> <record name="LayoutClass" c:type="GtkLayoutClass" glib:is-gtype-struct-for="Layout"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="LayoutPrivate" c:type="GtkLayoutPrivate" disguised="1"> </record> <class name="LevelBar" c:symbol-prefix="level_bar" c:type="GtkLevelBar" parent="Widget" glib:type-name="GtkLevelBar" glib:get-type="gtk_level_bar_get_type" glib:type-struct="LevelBarClass"> <doc xml:space="preserve">The #GtkLevelBar is a bar widget that can be used as a level indicator. Typical use cases are displaying the strength of a password, or showing the charge level of a battery. Use gtk_level_bar_set_value() to set the current value, and gtk_level_bar_add_offset_value() to set the value offsets at which the bar will be considered in a different state. GTK will add a few offsets by default on the level bar: #GTK_LEVEL_BAR_OFFSET_LOW, #GTK_LEVEL_BAR_OFFSET_HIGH and #GTK_LEVEL_BAR_OFFSET_FULL, with values 0.25, 0.75 and 1.0 respectively. Note that it is your responsibility to update preexisting offsets when changing the minimum or maximum value. GTK+ will simply clamp them to the new range. ## Adding a custom offset on the bar |[<!-- language="C" --> static GtkWidget * create_level_bar (void) { GtkWidget *widget; GtkLevelBar *bar; widget = gtk_level_bar_new (); bar = GTK_LEVEL_BAR (widget); // This changes the value of the default low offset gtk_level_bar_add_offset_value (bar, GTK_LEVEL_BAR_OFFSET_LOW, 0.10); // This adds a new offset to the bar; the application will // be able to change its color CSS like this: // // levelbar block.my-offset { // background-color: magenta; // border-style: solid; // border-color: black; // border-style: 1px; // } gtk_level_bar_add_offset_value (bar, "my-offset", 0.60); return widget; } ]| The default interval of values is between zero and one, but itâs possible to modify the interval using gtk_level_bar_set_min_value() and gtk_level_bar_set_max_value(). The value will be always drawn in proportion to the admissible interval, i.e. a value of 15 with a specified interval between 10 and 20 is equivalent to a value of 0.5 with an interval between 0 and 1. When #GTK_LEVEL_BAR_MODE_DISCRETE is used, the bar level is rendered as a finite number of separated blocks instead of a single one. The number of blocks that will be rendered is equal to the number of units specified by the admissible interval. For instance, to build a bar rendered with five blocks, itâs sufficient to set the minimum value to 0 and the maximum value to 5 after changing the indicator mode to discrete. GtkLevelBar was introduced in GTK+ 3.6. # GtkLevelBar as GtkBuildable The GtkLevelBar implementation of the GtkBuildable interface supports a custom <offsets> element, which can contain any number of <offset> elements, each of which must have name and value attributes. # CSS nodes |[<!-- language="plain" --> levelbar[.discrete] â°ââ trough âââ block.filled.level-name â âââ block.empty â ]| GtkLevelBar has a main CSS node with name levelbar and one of the style classes .discrete or .continuous and a subnode with name trough. Below the trough node are a number of nodes with name block and style class .filled or .empty. In continuous mode, there is exactly one node of each, in discrete mode, the number of filled and unfilled nodes corresponds to blocks that are drawn. The block.filled nodes also get a style class .level-name corresponding to the level for the current value. In horizontal orientation, the nodes are always arranged from left to right, regardless of text direction.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_level_bar_new" version="3.6"> <doc xml:space="preserve">Creates a new #GtkLevelBar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_for_interval" c:identifier="gtk_level_bar_new_for_interval" version="3.6"> <doc xml:space="preserve">Utility constructor that creates a new #GtkLevelBar for the specified interval.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="min_value" transfer-ownership="none"> <doc xml:space="preserve">a positive value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="max_value" transfer-ownership="none"> <doc xml:space="preserve">a positive value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <virtual-method name="offset_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="add_offset_value" c:identifier="gtk_level_bar_add_offset_value" version="3.6"> <doc xml:space="preserve">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 #GtkLevelBar: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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the new offset</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the value for the new offset</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="get_inverted" c:identifier="gtk_level_bar_get_inverted" version="3.8"> <doc xml:space="preserve">Return the value of the #GtkLevelBar:inverted property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the level bar is inverted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> </parameters> </method> <method name="get_max_value" c:identifier="gtk_level_bar_get_max_value" version="3.6"> <doc xml:space="preserve">Returns the value of the #GtkLevelBar:max-value property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a positive value</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> </parameters> </method> <method name="get_min_value" c:identifier="gtk_level_bar_get_min_value" version="3.6"> <doc xml:space="preserve">Returns the value of the #GtkLevelBar:min-value property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a positive value</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> </parameters> </method> <method name="get_mode" c:identifier="gtk_level_bar_get_mode" version="3.6"> <doc xml:space="preserve">Returns the value of the #GtkLevelBar:mode property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBarMode</doc> <type name="LevelBarMode" c:type="GtkLevelBarMode"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> </parameters> </method> <method name="get_offset_value" c:identifier="gtk_level_bar_get_offset_value" version="3.6"> <doc xml:space="preserve">Fetches the value specified for the offset marker @name in @self, returning %TRUE in case an offset named @name was found.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the specified offset is found</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of an offset in the bar</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location where to store the value</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="get_value" c:identifier="gtk_level_bar_get_value" version="3.6"> <doc xml:space="preserve">Returns the value of the #GtkLevelBar:value property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a value in the interval between #GtkLevelBar:min-value and #GtkLevelBar:max-value</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> </parameters> </method> <method name="remove_offset_value" c:identifier="gtk_level_bar_remove_offset_value" version="3.6"> <doc xml:space="preserve">Removes an offset marker previously added with gtk_level_bar_add_offset_value().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of an offset in the bar</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_inverted" c:identifier="gtk_level_bar_set_inverted" version="3.8"> <doc xml:space="preserve">Sets the value of the #GtkLevelBar:inverted property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="inverted" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to invert the level bar</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_max_value" c:identifier="gtk_level_bar_set_max_value" version="3.6"> <doc xml:space="preserve">Sets the value of the #GtkLevelBar:max-value property. You probably want to update preexisting level offsets after calling this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">a positive value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_min_value" c:identifier="gtk_level_bar_set_min_value" version="3.6"> <doc xml:space="preserve">Sets the value of the #GtkLevelBar:min-value property. You probably want to update preexisting level offsets after calling this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">a positive value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_mode" c:identifier="gtk_level_bar_set_mode" version="3.6"> <doc xml:space="preserve">Sets the value of the #GtkLevelBar:mode property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBarMode</doc> <type name="LevelBarMode" c:type="GtkLevelBarMode"/> </parameter> </parameters> </method> <method name="set_value" c:identifier="gtk_level_bar_set_value" version="3.6"> <doc xml:space="preserve">Sets the value of the #GtkLevelBar:value property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLevelBar</doc> <type name="LevelBar" c:type="GtkLevelBar*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">a value in the interval between #GtkLevelBar:min-value and #GtkLevelBar:max-value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <property name="inverted" version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Level bars normally grow from top to bottom or left to right. Inverted level bars grow in the opposite direction.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="max-value" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkLevelBar:max-value property determaxes the maximum value of the interval that can be displayed by the bar.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="min-value" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkLevelBar:min-value property determines the minimum value of the interval that can be displayed by the bar.</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="mode" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkLevelBar:mode property 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 #GtkLevelBar:min-value and #GtkLevelBar:max-value.</doc> <type name="LevelBarMode"/> </property> <property name="value" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkLevelBar:value property determines the currently filled value of the level bar.</doc> <type name="gdouble" c:type="gdouble"/> </property> <field name="parent" readable="0" private="1"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="LevelBarPrivate" c:type="GtkLevelBarPrivate*"/> </field> <glib:signal name="offset-changed" when="first" detailed="1" version="3.6"> <doc xml:space="preserve">Emitted when an offset specified on the bar changes value as an effect to gtk_level_bar_add_offset_value() being called. The signal supports detailed connections; you can connect to the detailed signal "changed::x" in order to only receive callbacks when the value of offset "x" changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the offset that changed value</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> </class> <class name="LevelBarAccessible" c:symbol-prefix="level_bar_accessible" c:type="GtkLevelBarAccessible" parent="WidgetAccessible" glib:type-name="GtkLevelBarAccessible" glib:get-type="gtk_level_bar_accessible_get_type" glib:type-struct="LevelBarAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Value"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="LevelBarAccessiblePrivate" c:type="GtkLevelBarAccessiblePrivate*"/> </field> </class> <record name="LevelBarAccessibleClass" c:type="GtkLevelBarAccessibleClass" glib:is-gtype-struct-for="LevelBarAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="LevelBarAccessiblePrivate" c:type="GtkLevelBarAccessiblePrivate" disguised="1"> </record> <record name="LevelBarClass" c:type="GtkLevelBarClass" glib:is-gtype-struct-for="LevelBar"> <field name="parent_class" readable="0" private="1"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="offset_changed"> <callback name="offset_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="LevelBar" c:type="GtkLevelBar*"/> </parameter> <parameter name="name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="16"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <enumeration name="LevelBarMode" version="3.6" glib:type-name="GtkLevelBarMode" glib:get-type="gtk_level_bar_mode_get_type" c:type="GtkLevelBarMode"> <doc xml:space="preserve">Describes how #GtkLevelBar contents should be rendered. Note that this enumeration could be extended with additional modes in the future.</doc> <member name="continuous" value="0" c:identifier="GTK_LEVEL_BAR_MODE_CONTINUOUS" glib:nick="continuous"> <doc xml:space="preserve">the bar has a continuous mode</doc> </member> <member name="discrete" value="1" c:identifier="GTK_LEVEL_BAR_MODE_DISCRETE" glib:nick="discrete"> <doc xml:space="preserve">the bar has a discrete mode</doc> </member> </enumeration> <record name="LevelBarPrivate" c:type="GtkLevelBarPrivate" disguised="1"> </record> <enumeration name="License" version="3.0" glib:type-name="GtkLicense" glib:get-type="gtk_license_get_type" c:type="GtkLicense"> <doc xml:space="preserve">The type of license for an application. This enumeration can be expanded at later date.</doc> <member name="unknown" value="0" c:identifier="GTK_LICENSE_UNKNOWN" glib:nick="unknown"> <doc xml:space="preserve">No license specified</doc> </member> <member name="custom" value="1" c:identifier="GTK_LICENSE_CUSTOM" glib:nick="custom"> <doc xml:space="preserve">A license text is going to be specified by the developer</doc> </member> <member name="gpl_2_0" value="2" c:identifier="GTK_LICENSE_GPL_2_0" glib:nick="gpl-2-0"> <doc xml:space="preserve">The GNU General Public License, version 2.0 or later</doc> </member> <member name="gpl_3_0" value="3" c:identifier="GTK_LICENSE_GPL_3_0" glib:nick="gpl-3-0"> <doc xml:space="preserve">The GNU General Public License, version 3.0 or later</doc> </member> <member name="lgpl_2_1" value="4" c:identifier="GTK_LICENSE_LGPL_2_1" glib:nick="lgpl-2-1"> <doc xml:space="preserve">The GNU Lesser General Public License, version 2.1 or later</doc> </member> <member name="lgpl_3_0" value="5" c:identifier="GTK_LICENSE_LGPL_3_0" glib:nick="lgpl-3-0"> <doc xml:space="preserve">The GNU Lesser General Public License, version 3.0 or later</doc> </member> <member name="bsd" value="6" c:identifier="GTK_LICENSE_BSD" glib:nick="bsd"> <doc xml:space="preserve">The BSD standard license</doc> </member> <member name="mit_x11" value="7" c:identifier="GTK_LICENSE_MIT_X11" glib:nick="mit-x11"> <doc xml:space="preserve">The MIT/X11 standard license</doc> </member> <member name="artistic" value="8" c:identifier="GTK_LICENSE_ARTISTIC" glib:nick="artistic"> <doc xml:space="preserve">The Artistic License, version 2.0</doc> </member> <member name="gpl_2_0_only" value="9" c:identifier="GTK_LICENSE_GPL_2_0_ONLY" glib:nick="gpl-2-0-only"> <doc xml:space="preserve">The GNU General Public License, version 2.0 only. Since 3.12.</doc> </member> <member name="gpl_3_0_only" value="10" c:identifier="GTK_LICENSE_GPL_3_0_ONLY" glib:nick="gpl-3-0-only"> <doc xml:space="preserve">The GNU General Public License, version 3.0 only. Since 3.12.</doc> </member> <member name="lgpl_2_1_only" value="11" c:identifier="GTK_LICENSE_LGPL_2_1_ONLY" glib:nick="lgpl-2-1-only"> <doc xml:space="preserve">The GNU Lesser General Public License, version 2.1 only. Since 3.12.</doc> </member> <member name="lgpl_3_0_only" value="12" c:identifier="GTK_LICENSE_LGPL_3_0_ONLY" glib:nick="lgpl-3-0-only"> <doc xml:space="preserve">The GNU Lesser General Public License, version 3.0 only. Since 3.12.</doc> </member> <member name="agpl_3_0" value="13" c:identifier="GTK_LICENSE_AGPL_3_0" glib:nick="agpl-3-0"> <doc xml:space="preserve">The GNU Affero General Public License, version 3.0 or later. Since: 3.22.</doc> </member> <member name="agpl_3_0_only" value="14" c:identifier="GTK_LICENSE_AGPL_3_0_ONLY" glib:nick="agpl-3-0-only"> <doc xml:space="preserve">The GNU Affero General Public License, version 3.0 only. Since: 3.22.27.</doc> </member> </enumeration> <class name="LinkButton" c:symbol-prefix="link_button" c:type="GtkLinkButton" parent="Button" glib:type-name="GtkLinkButton" glib:get-type="gtk_link_button_get_type" glib:type-struct="LinkButtonClass"> <doc xml:space="preserve">A GtkLinkButton is a #GtkButton with a hyperlink, similar to the one used by web browsers, which triggers an action when clicked. It is useful to show quick links to resources. A link button is created by calling either gtk_link_button_new() or gtk_link_button_new_with_label(). If using the former, the URI you pass to the constructor is used as a label for the widget. The URI bound to a GtkLinkButton can be set specifically using gtk_link_button_set_uri(), and retrieved using gtk_link_button_get_uri(). By default, GtkLinkButton calls gtk_show_uri_on_window() when the button is clicked. This behaviour can be overridden by connecting to the #GtkLinkButton::activate-link signal and returning %TRUE from the signal handler. # CSS nodes GtkLinkButton has a single CSS node with name button. To differentiate it from a plain #GtkButton, it gets the .link style class.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_link_button_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkLinkButton with the URI as its text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new link button widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a valid URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_label" c:identifier="gtk_link_button_new_with_label" version="2.10"> <doc xml:space="preserve">Creates a new #GtkLinkButton containing a label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new link button widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a valid URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the text of the button</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="activate_link"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <type name="LinkButton" c:type="GtkLinkButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_uri" c:identifier="gtk_link_button_get_uri" version="2.10"> <doc xml:space="preserve">Retrieves the URI set using gtk_link_button_set_uri().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a valid URI. The returned string is owned by the link button and should not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="link_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLinkButton</doc> <type name="LinkButton" c:type="GtkLinkButton*"/> </instance-parameter> </parameters> </method> <method name="get_visited" c:identifier="gtk_link_button_get_visited" version="2.14"> <doc xml:space="preserve">Retrieves the âvisitedâ state of the URI where the #GtkLinkButton points. 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 gtk_link_button_set_visited().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the link has been visited, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="link_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLinkButton</doc> <type name="LinkButton" c:type="GtkLinkButton*"/> </instance-parameter> </parameters> </method> <method name="set_uri" c:identifier="gtk_link_button_set_uri" version="2.10"> <doc xml:space="preserve">Sets @uri as the URI where the #GtkLinkButton points. As a side-effect this unsets the âvisitedâ state of the button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="link_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLinkButton</doc> <type name="LinkButton" c:type="GtkLinkButton*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a valid URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_visited" c:identifier="gtk_link_button_set_visited" version="2.14"> <doc xml:space="preserve">Sets the âvisitedâ state of the URI where the #GtkLinkButton points. See gtk_link_button_get_visited() for more details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="link_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLinkButton</doc> <type name="LinkButton" c:type="GtkLinkButton*"/> </instance-parameter> <parameter name="visited" transfer-ownership="none"> <doc xml:space="preserve">the new âvisitedâ state</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="uri" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The URI bound to this button.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="visited" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The 'visited' state of this button. A visited link is drawn in a different color.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="Button" c:type="GtkButton"/> </field> <field name="priv" readable="0" private="1"> <type name="LinkButtonPrivate" c:type="GtkLinkButtonPrivate*"/> </field> <glib:signal name="activate-link" when="last"> <doc xml:space="preserve">The ::activate-link signal is emitted each time the #GtkLinkButton has been clicked. The default handler will call gtk_show_uri_on_window() with the URI stored inside the #GtkLinkButton: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.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> </class> <class name="LinkButtonAccessible" c:symbol-prefix="link_button_accessible" c:type="GtkLinkButtonAccessible" parent="ButtonAccessible" glib:type-name="GtkLinkButtonAccessible" glib:get-type="gtk_link_button_accessible_get_type" glib:type-struct="LinkButtonAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.HyperlinkImpl"/> <implements name="Atk.Image"/> <field name="parent"> <type name="ButtonAccessible" c:type="GtkButtonAccessible"/> </field> <field name="priv"> <type name="LinkButtonAccessiblePrivate" c:type="GtkLinkButtonAccessiblePrivate*"/> </field> </class> <record name="LinkButtonAccessibleClass" c:type="GtkLinkButtonAccessibleClass" glib:is-gtype-struct-for="LinkButtonAccessible"> <field name="parent_class"> <type name="ButtonAccessibleClass" c:type="GtkButtonAccessibleClass"/> </field> </record> <record name="LinkButtonAccessiblePrivate" c:type="GtkLinkButtonAccessiblePrivate" disguised="1"> </record> <record name="LinkButtonClass" c:type="GtkLinkButtonClass" glib:is-gtype-struct-for="LinkButton"> <doc xml:space="preserve">The #GtkLinkButtonClass contains only private data.</doc> <field name="parent_class" readable="0" private="1"> <type name="ButtonClass" c:type="GtkButtonClass"/> </field> <field name="activate_link"> <callback name="activate_link"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <type name="LinkButton" c:type="GtkLinkButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_padding1" introspectable="0"> <callback name="_gtk_padding1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_padding2" introspectable="0"> <callback name="_gtk_padding2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_padding3" introspectable="0"> <callback name="_gtk_padding3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_padding4" introspectable="0"> <callback name="_gtk_padding4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="LinkButtonPrivate" c:type="GtkLinkButtonPrivate" disguised="1"> </record> <class name="ListBox" c:symbol-prefix="list_box" c:type="GtkListBox" parent="Container" glib:type-name="GtkListBox" glib:get-type="gtk_list_box_get_type" glib:type-struct="ListBoxClass"> <doc xml:space="preserve">A GtkListBox is a vertical container that contains GtkListBoxRow children. These rows can by dynamically sorted and filtered, and headers can be added dynamically depending on the row content. It also allows keyboard and mouse navigation and selection like a typical list. Using GtkListBox is often an alternative to #GtkTreeView, especially when the list contents has a more complicated layout than what is allowed by a #GtkCellRenderer, or when the contents is interactive (i.e. has a button in it). Although a #GtkListBox must have only #GtkListBoxRow children you can add any kind of widget to it via gtk_container_add(), and a #GtkListBoxRow widget will automatically be inserted between the list and the widget. #GtkListBoxRows can be marked as activatable or selectable. If a row is activatable, #GtkListBox::row-activated will be emitted for it when the user tries to activate it. If it is selectable, the row will be marked as selected when the user tries to select it. The GtkListBox widget was added in GTK+ 3.10. # CSS nodes |[<!-- language="plain" --> list â°ââ row[.activatable] ]| GtkListBox uses a single CSS node named list. Each GtkListBoxRow uses a single CSS node named row. The row nodes get the .activatable style class added when appropriate.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_list_box_new" version="3.10"> <doc xml:space="preserve">Creates a new #GtkListBox container.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkListBox</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="activate_cursor_row"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="move_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_selected"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> </parameters> </virtual-method> <virtual-method name="select_all" invoker="select_all" version="3.14"> <doc xml:space="preserve">Select all children of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="selected_rows_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="toggle_cursor_row"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="unselect_all" invoker="unselect_all" version="3.14"> <doc xml:space="preserve">Unselect all children of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </virtual-method> <method name="bind_model" c:identifier="gtk_list_box_bind_model" version="3.16"> <doc xml:space="preserve">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 gtk_list_box_insert() or gtk_container_add()) 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GListModel to be bound to @box</doc> <type name="Gio.ListModel" c:type="GListModel*"/> </parameter> <parameter name="create_widget_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">a function that creates widgets for items or %NULL in case you also passed %NULL as @model</doc> <type name="ListBoxCreateWidgetFunc" c:type="GtkListBoxCreateWidgetFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data passed to @create_widget_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="user_data_free_func" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function for freeing @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="drag_highlight_row" c:identifier="gtk_list_box_drag_highlight_row" version="3.10"> <doc xml:space="preserve">This is a helper function for implementing DnD onto a #GtkListBox. The passed in @row will be highlighted via gtk_drag_highlight(), and any previously highlighted row will be unhighlighted. The row will also be unhighlighted when the widget gets a drag leave event.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> </parameters> </method> <method name="drag_unhighlight_row" c:identifier="gtk_list_box_drag_unhighlight_row" version="3.10"> <doc xml:space="preserve">If a row has previously been highlighted via gtk_list_box_drag_highlight_row() it will have the highlight removed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="get_activate_on_single_click" c:identifier="gtk_list_box_get_activate_on_single_click" version="3.10"> <doc xml:space="preserve">Returns whether rows activate on single clicks.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if rows are activated on single click, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="get_adjustment" c:identifier="gtk_list_box_get_adjustment" version="3.10"> <doc xml:space="preserve">Gets the adjustment (if any) that the widget uses to for vertical scrolling.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="get_row_at_index" c:identifier="gtk_list_box_get_row_at_index" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the child #GtkWidget or %NULL</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the index of the row</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_row_at_y" c:identifier="gtk_list_box_get_row_at_y" version="3.10"> <doc xml:space="preserve">Gets the row at the @y position.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the row or %NULL in case no row exists for the given y coordinate.</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_selected_row" c:identifier="gtk_list_box_get_selected_row" version="3.10"> <doc xml:space="preserve">Gets the selected row. Note that the box may allow multiple selection, in which case you should use gtk_list_box_selected_foreach() to find all selected rows.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the selected row</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="get_selected_rows" c:identifier="gtk_list_box_get_selected_rows" version="3.14"> <doc xml:space="preserve">Creates a list of all selected children.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve"> A #GList containing the #GtkWidget for each selected child. Free with g_list_free() when done.</doc> <type name="GLib.List" c:type="GList*"> <type name="ListBoxRow"/> </type> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="get_selection_mode" c:identifier="gtk_list_box_get_selection_mode" version="3.10"> <doc xml:space="preserve">Gets the selection mode of the listbox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionMode</doc> <type name="SelectionMode" c:type="GtkSelectionMode"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="insert" c:identifier="gtk_list_box_insert" version="3.10"> <doc xml:space="preserve">Insert the @child into the @box at @position. If a sort function is set, the widget will actually be inserted at the calculated position and this function has the same effect of gtk_container_add(). If @position is -1, or larger than the total number of items in the @box, then the @child will be appended to the end.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position to insert @child in</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="invalidate_filter" c:identifier="gtk_list_box_invalidate_filter" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="invalidate_headers" c:identifier="gtk_list_box_invalidate_headers" version="3.10"> <doc xml:space="preserve">Update the separators for all rows. Call this when result of the header function on the @box is changed due to an external factor.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="invalidate_sort" c:identifier="gtk_list_box_invalidate_sort" version="3.10"> <doc xml:space="preserve">Update the sorting for all rows. Call this when result of the sort function on the @box is changed due to an external factor.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="prepend" c:identifier="gtk_list_box_prepend" version="3.10"> <doc xml:space="preserve">Prepend a widget to the list. If a sort function is set, the widget will actually be inserted at the calculated position and this function has the same effect of gtk_container_add().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="select_all" c:identifier="gtk_list_box_select_all" version="3.14"> <doc xml:space="preserve">Select all children of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="select_row" c:identifier="gtk_list_box_select_row" version="3.10"> <doc xml:space="preserve">Make @row the currently selected row.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="row" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The row to select or %NULL</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> </parameters> </method> <method name="selected_foreach" c:identifier="gtk_list_box_selected_foreach" version="3.14"> <doc xml:space="preserve">Calls a function for each selected child. Note that the selection cannot be modified from within this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">the function to call for each selected child</doc> <type name="ListBoxForeachFunc" c:type="GtkListBoxForeachFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to the function</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="set_activate_on_single_click" c:identifier="gtk_list_box_set_activate_on_single_click" version="3.10"> <doc xml:space="preserve">If @single is %TRUE, rows will be activated when you click on them, otherwise you need to double-click.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="single" transfer-ownership="none"> <doc xml:space="preserve">a boolean</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_adjustment" c:identifier="gtk_list_box_set_adjustment" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the adjustment, or %NULL</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_filter_func" c:identifier="gtk_list_box_set_filter_func" version="3.10"> <doc xml:space="preserve">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 gtk_list_box_row_changed()) or when gtk_list_box_invalidate_filter() is called. Note that using a filter function is incompatible with using a model (see gtk_list_box_bind_model()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="filter_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">callback that lets you filter which rows to show</doc> <type name="ListBoxFilterFunc" c:type="GtkListBoxFilterFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data passed to @filter_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notifier for @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_header_func" c:identifier="gtk_list_box_set_header_func" version="3.10"> <doc xml:space="preserve">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 gtk_list_box_row_get_header() and either update the state of the widget as needed, or set a new one using gtk_list_box_row_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 gtk_list_box_row_changed()) and when the row before changes (either by gtk_list_box_row_changed() on the previous row, or when the previous row becomes a different row). It is also called for all rows when gtk_list_box_invalidate_headers() is called.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="update_header" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">callback that lets you add row headers</doc> <type name="ListBoxUpdateHeaderFunc" c:type="GtkListBoxUpdateHeaderFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data passed to @update_header</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notifier for @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_placeholder" c:identifier="gtk_list_box_set_placeholder" version="3.10"> <doc xml:space="preserve">Sets the placeholder widget that is shown in the list when it doesn't display any visible children.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="placeholder" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_selection_mode" c:identifier="gtk_list_box_set_selection_mode" version="3.10"> <doc xml:space="preserve">Sets how selection works in the listbox. See #GtkSelectionMode for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">The #GtkSelectionMode</doc> <type name="SelectionMode" c:type="GtkSelectionMode"/> </parameter> </parameters> </method> <method name="set_sort_func" c:identifier="gtk_list_box_set_sort_func" version="3.10"> <doc xml:space="preserve">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 gtk_list_box_row_changed()) and when gtk_list_box_invalidate_sort() is called. Note that using a sort function is incompatible with using a model (see gtk_list_box_bind_model()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="sort_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">the sort function</doc> <type name="ListBoxSortFunc" c:type="GtkListBoxSortFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data passed to @sort_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notifier for @user_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="unselect_all" c:identifier="gtk_list_box_unselect_all" version="3.14"> <doc xml:space="preserve">Unselect all children of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> </parameters> </method> <method name="unselect_row" c:identifier="gtk_list_box_unselect_row" version="3.14"> <doc xml:space="preserve">Unselects a single row of @box, if the selection mode allows it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">the row to unselected</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> </parameters> </method> <property name="activate-on-single-click" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="selection-mode" writable="1" transfer-ownership="none"> <type name="SelectionMode"/> </property> <field name="parent_instance"> <type name="Container" c:type="GtkContainer"/> </field> <glib:signal name="activate-cursor-row" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="move-cursor" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="MovementStep"/> </parameter> <parameter name="p0" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="row-activated" when="last" version="3.10"> <doc xml:space="preserve">The ::row-activated signal is emitted when a row has been activated by the user.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">the activated row</doc> <type name="ListBoxRow"/> </parameter> </parameters> </glib:signal> <glib:signal name="row-selected" when="last" version="3.10"> <doc xml:space="preserve">The ::row-selected signal is 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 #GtkListBox::selected-rows-changed signal instead.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="row" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the selected row</doc> <type name="ListBoxRow"/> </parameter> </parameters> </glib:signal> <glib:signal name="select-all" when="last" action="1" version="3.14"> <doc xml:space="preserve">The ::select-all signal is a [keybinding signal][GtkBindingSignal] which gets emitted to select all children of the box, if the selection mode permits it. The default bindings for this signal is Ctrl-a.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="selected-rows-changed" when="first" version="3.14"> <doc xml:space="preserve">The ::selected-rows-changed signal is emitted when the set of selected rows changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="toggle-cursor-row" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="unselect-all" when="last" action="1" version="3.14"> <doc xml:space="preserve">The ::unselect-all signal is a [keybinding signal][GtkBindingSignal] which gets emitted to unselect all children of the box, if the selection mode permits it. The default bindings for this signal is Ctrl-Shift-a.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="ListBoxAccessible" c:symbol-prefix="list_box_accessible" c:type="GtkListBoxAccessible" parent="ContainerAccessible" glib:type-name="GtkListBoxAccessible" glib:get-type="gtk_list_box_accessible_get_type" glib:type-struct="ListBoxAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="ListBoxAccessiblePrivate" c:type="GtkListBoxAccessiblePrivate*"/> </field> </class> <record name="ListBoxAccessibleClass" c:type="GtkListBoxAccessibleClass" glib:is-gtype-struct-for="ListBoxAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="ListBoxAccessiblePrivate" c:type="GtkListBoxAccessiblePrivate" disguised="1"> </record> <record name="ListBoxClass" c:type="GtkListBoxClass" glib:is-gtype-struct-for="ListBox"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="row_selected"> <callback name="row_selected"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </parameter> <parameter name="row" transfer-ownership="none"> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> </parameters> </callback> </field> <field name="row_activated"> <callback name="row_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </parameter> <parameter name="row" transfer-ownership="none"> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> </parameters> </callback> </field> <field name="activate_cursor_row"> <callback name="activate_cursor_row"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </parameter> </parameters> </callback> </field> <field name="toggle_cursor_row"> <callback name="toggle_cursor_row"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </parameter> </parameters> </callback> </field> <field name="move_cursor"> <callback name="move_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="selected_rows_changed"> <callback name="selected_rows_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <type name="ListBox" c:type="GtkListBox*"/> </parameter> </parameters> </callback> </field> <field name="select_all"> <callback name="select_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </parameter> </parameters> </callback> </field> <field name="unselect_all"> <callback name="unselect_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="ListBoxCreateWidgetFunc" c:type="GtkListBoxCreateWidgetFunc" version="3.16"> <doc xml:space="preserve">Called for list boxes that are bound to a #GListModel with gtk_list_box_bind_model() for each item that gets added to the model. Versions of GTK+ prior to 3.18 called gtk_widget_show_all() on the rows created by the GtkListBoxCreateWidgetFunc, but this forced all widgets inside the row to be shown, and is no longer the case. Applications should be updated to show the desired row widgets.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GtkWidget that represents @item</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">the item from the model for which to create a widget for</doc> <type name="GObject.Object" c:type="gpointer"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ListBoxFilterFunc" c:type="GtkListBoxFilterFunc" version="3.10"> <doc xml:space="preserve">Will be called whenever the row changes or is added and lets you control if the row should be visible or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row should be visible, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">the row that may be filtered</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ListBoxForeachFunc" c:type="GtkListBoxForeachFunc" version="3.14"> <doc xml:space="preserve">A function used by gtk_list_box_selected_foreach(). It will be called on every selected child of the @box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="box" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBox</doc> <type name="ListBox" c:type="GtkListBox*"/> </parameter> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="ListBoxRow" c:symbol-prefix="list_box_row" c:type="GtkListBoxRow" parent="Bin" glib:type-name="GtkListBoxRow" glib:get-type="gtk_list_box_row_get_type" glib:type-struct="ListBoxRowClass"> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_list_box_row_new" version="3.10"> <doc xml:space="preserve">Creates a new #GtkListBoxRow, to be used as a child of a #GtkListBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkListBoxRow</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> </parameters> </virtual-method> <method name="changed" c:identifier="gtk_list_box_row_changed" version="3.10"> <doc xml:space="preserve">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 gtk_list_box_invalidate_sort() on any model change, but that is more expensive.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> </parameters> </method> <method name="get_activatable" c:identifier="gtk_list_box_row_get_activatable" version="3.14"> <doc xml:space="preserve">Gets the value of the #GtkListBoxRow:activatable property for this row.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row is activatable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> </parameters> </method> <method name="get_header" c:identifier="gtk_list_box_row_get_header" version="3.10"> <doc xml:space="preserve">Returns the current header of the @row. This can be used in a #GtkListBoxUpdateHeaderFunc to see if there is a header set already, and if so to update the state of it.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the current header, or %NULL if none</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> </parameters> </method> <method name="get_index" c:identifier="gtk_list_box_row_get_index" version="3.10"> <doc xml:space="preserve">Gets the current index of the @row in its #GtkListBox container.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index of the @row, or -1 if the @row is not in a listbox</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> </parameters> </method> <method name="get_selectable" c:identifier="gtk_list_box_row_get_selectable" version="3.14"> <doc xml:space="preserve">Gets the value of the #GtkListBoxRow:selectable property for this row.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row is selectable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> </parameters> </method> <method name="is_selected" c:identifier="gtk_list_box_row_is_selected" version="3.14"> <doc xml:space="preserve">Returns whether the child is currently selected in its #GtkListBox container.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @row is selected</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> </parameters> </method> <method name="set_activatable" c:identifier="gtk_list_box_row_set_activatable" version="3.14"> <doc xml:space="preserve">Set the #GtkListBoxRow:activatable property for this row.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> <parameter name="activatable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to mark the row as activatable</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_header" c:identifier="gtk_list_box_row_set_header" version="3.10"> <doc xml:space="preserve">Sets the current header of the @row. This is only allowed to be called from a #GtkListBoxUpdateHeaderFunc. It will replace any existing header in the row, and be shown in front of the row in the listbox.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> <parameter name="header" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the header, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_selectable" c:identifier="gtk_list_box_row_set_selectable" version="3.14"> <doc xml:space="preserve">Set the #GtkListBoxRow:selectable property for this row.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListBoxRow</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </instance-parameter> <parameter name="selectable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to mark the row as selectable</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="activatable" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The property determines whether the #GtkListBox::row-activated signal will be emitted for this row.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="selectable" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The property determines whether this row can be selected.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Bin" c:type="GtkBin"/> </field> <glib:signal name="activate" when="first" action="1" version="3.10"> <doc xml:space="preserve">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 #GtkListBox::row-activated signal on the rowâs parent #GtkListBox.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="ListBoxRowAccessible" c:symbol-prefix="list_box_row_accessible" c:type="GtkListBoxRowAccessible" parent="ContainerAccessible" glib:type-name="GtkListBoxRowAccessible" glib:get-type="gtk_list_box_row_accessible_get_type" glib:type-struct="ListBoxRowAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> </class> <record name="ListBoxRowAccessibleClass" c:type="GtkListBoxRowAccessibleClass" glib:is-gtype-struct-for="ListBoxRowAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="ListBoxRowClass" c:type="GtkListBoxRowClass" glib:is-gtype-struct-for="ListBoxRow"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="row" transfer-ownership="none"> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="ListBoxSortFunc" c:type="GtkListBoxSortFunc" version="3.10"> <doc xml:space="preserve">Compare two rows to determine which should be first.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">< 0 if @row1 should be before @row2, 0 if they are equal and > 0 otherwise</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="row1" transfer-ownership="none"> <doc xml:space="preserve">the first row</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> <parameter name="row2" transfer-ownership="none"> <doc xml:space="preserve">the second row</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="ListBoxUpdateHeaderFunc" c:type="GtkListBoxUpdateHeaderFunc" version="3.10"> <doc xml:space="preserve">Whenever @row changes or which row is before @row changes this is called, which lets you update the header on @row. You may remove or set a new one via gtk_list_box_row_set_header() or just change the state of the current header widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">the row to update</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> <parameter name="before" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the row before @row, or %NULL if it is first</doc> <type name="ListBoxRow" c:type="GtkListBoxRow*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="ListStore" c:symbol-prefix="list_store" c:type="GtkListStore" parent="GObject.Object" glib:type-name="GtkListStore" glib:get-type="gtk_list_store_get_type" glib:type-struct="ListStoreClass"> <doc xml:space="preserve">The #GtkListStore object is a list model for use with a #GtkTreeView widget. It implements the #GtkTreeModel interface, and consequentialy, can use all of the methods available there. It also implements the #GtkTreeSortable interface so it can be sorted by the view. Finally, it also implements the tree [drag and drop][gtk3-GtkTreeView-drag-and-drop] interfaces. The #GtkListStore can accept most GObject types as a column type, though it canât accept all custom types. Internally, it will keep a copy of data passed in (such as a string or a boxed pointer). Columns that accept #GObjects are handled a little differently. The #GtkListStore will keep a reference to the object instead of copying the value. As a result, if the object is modified, it is up to the application writer to call gtk_tree_model_row_changed() to emit the #GtkTreeModel::row_changed signal. This most commonly affects lists with #GdkPixbufs stored. An example for creating a simple list store: |[<!-- language="C" --> enum { COLUMN_STRING, COLUMN_INT, COLUMN_BOOLEAN, N_COLUMNS }; { GtkListStore *list_store; GtkTreePath *path; GtkTreeIter iter; gint i; list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN); for (i = 0; i < 10; i++) { gchar *some_data; some_data = get_some_data (i); // Add a new row to the model gtk_list_store_append (list_store, &iter); gtk_list_store_set (list_store, &iter, COLUMN_STRING, some_data, COLUMN_INT, i, COLUMN_BOOLEAN, FALSE, -1); // As the store will keep a copy of the string internally, // we free some_data. g_free (some_data); } // Modify a particular row path = gtk_tree_path_new_from_string ("4"); gtk_tree_model_get_iter (GTK_TREE_MODEL (list_store), &iter, path); gtk_tree_path_free (path); gtk_list_store_set (list_store, &iter, COLUMN_BOOLEAN, TRUE, -1); } ]| # Performance Considerations Internally, the #GtkListStore was implemented with a linked list with a tail pointer prior to GTK+ 2.6. As a result, it was fast at data insertion and deletion, and not fast at random data access. The #GtkListStore sets the #GTK_TREE_MODEL_ITERS_PERSIST flag, which means that #GtkTreeIters can be cached while the row exists. Thus, if access to a particular row is needed often and your code is expected to run on older versions of GTK+, it is worth keeping the iter around. # Atomic Operations It is important to note that only the methods gtk_list_store_insert_with_values() and gtk_list_store_insert_with_valuesv() are atomic, in the sense that the row is being appended to the store and the values filled in in a single operation with regard to #GtkTreeModel signaling. In contrast, using e.g. gtk_list_store_append() and then gtk_list_store_set() will first create a row, which triggers the #GtkTreeModel::row-inserted signal on #GtkListStore. The row, however, is still empty, and any signal handler connecting to #GtkTreeModel::row-inserted on this particular store should be prepared for the situation that the row might be empty. This is especially important if you are wrapping the #GtkListStore inside a #GtkTreeModelFilter and are using a #GtkTreeModelFilterVisibleFunc. Using any of the non-atomic operations to append rows to the #GtkListStore will cause the #GtkTreeModelFilterVisibleFunc to be visited with an empty row first; the function must be prepared for that. # GtkListStore as GtkBuildable The GtkListStore implementation of the GtkBuildable interface allows to specify the model columns with a <columns> element that may contain multiple <column> elements, each specifying one model column. The âtypeâ attribute specifies the data type for the column. Additionally, it is possible to specify content for the list store in the UI definition, with the <data> element. It can contain multiple <row> elements, each specifying to content for one row of the list model. Inside a <row>, the <col> elements specify the content for individual cells. Note that it is probably more common to define your models in the code, and one might consider it a layering violation to specify the content of a list store in a UI definition, data, not presentation, and common wisdom is to separate the two, as far as possible. An example of a UI Definition fragment for a list store: |[<!-- language="C" --> <object class="GtkListStore"> <columns> <column type="gchararray"/> <column type="gchararray"/> <column type="gint"/> </columns> <data> <row> <col id="0">John</col> <col id="1">Doe</col> <col id="2">25</col> </row> <row> <col id="0">Johan</col> <col id="1">Dahlin</col> <col id="2">50</col> </row> </data> </object> ]|</doc> <implements name="Buildable"/> <implements name="TreeDragDest"/> <implements name="TreeDragSource"/> <implements name="TreeModel"/> <implements name="TreeSortable"/> <constructor name="new" c:identifier="gtk_list_store_new" shadowed-by="newv" introspectable="0"> <doc xml:space="preserve">Creates a new list store as with @n_columns columns each of the types passed in. Note that only types derived from standard GObject fundamental types are supported. As an example, `gtk_list_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_PIXBUF);` will create a new #GtkListStore with three columns, of type int, string and #GdkPixbuf respectively.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </return-value> <parameters> <parameter name="n_columns" transfer-ownership="none"> <doc xml:space="preserve">number of columns in the list store</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">all #GType types for the columns, from first to last</doc> <varargs/> </parameter> </parameters> </constructor> <constructor name="newv" c:identifier="gtk_list_store_newv" shadows="new"> <doc xml:space="preserve">Non-vararg creation function. Used primarily by language bindings.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </return-value> <parameters> <parameter name="n_columns" transfer-ownership="none"> <doc xml:space="preserve">number of columns in the list store</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="types" transfer-ownership="none"> <doc xml:space="preserve">an array of #GType types for the columns, from first to last</doc> <array length="0" zero-terminated="0" c:type="GType*"> <type name="GType" c:type="GType"/> </array> </parameter> </parameters> </constructor> <method name="append" c:identifier="gtk_list_store_append"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the appended row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="clear" c:identifier="gtk_list_store_clear"> <doc xml:space="preserve">Removes all rows from the list store.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListStore.</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> </parameters> </method> <method name="insert" c:identifier="gtk_list_store_insert"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the new row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position to insert the new row, or -1 for last</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="insert_after" c:identifier="gtk_list_store_insert_after"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the new row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="sibling" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="insert_before" c:identifier="gtk_list_store_insert_before"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the new row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="sibling" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="insert_with_values" c:identifier="gtk_list_store_insert_with_values" version="2.6" introspectable="0"> <doc xml:space="preserve">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 |[<!-- language="C" --> 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 a row_inserted signal, while the latter will emit row_inserted, row_changed and, if the list store is sorted, rows_reordered. Since emitting the 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the new row, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position to insert the new row, or -1 to append after existing rows</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">pairs of column number and value, terminated with -1</doc> <varargs/> </parameter> </parameters> </method> <method name="insert_with_valuesv" c:identifier="gtk_list_store_insert_with_valuesv" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the new row, or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position to insert the new row, or -1 for last</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="columns" transfer-ownership="none"> <doc xml:space="preserve">an array of column numbers</doc> <array length="4" zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> <parameter name="values" transfer-ownership="none"> <doc xml:space="preserve">an array of GValues</doc> <array length="4" zero-terminated="0" c:type="GValue*"> <type name="GObject.Value" c:type="GValue"/> </array> </parameter> <parameter name="n_values" transfer-ownership="none"> <doc xml:space="preserve">the length of the @columns and @values arrays</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_is_valid" c:identifier="gtk_list_store_iter_is_valid" version="2.2"> <doc xml:space="preserve">> This function is slow. Only use it for debugging and/or testing > purposes. Checks if the given iter is a valid iter for this #GtkListStore.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the iter is valid, %FALSE if the iter is invalid.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore.</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="move_after" c:identifier="gtk_list_store_move_after" version="2.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore.</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreeIter or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="move_before" c:identifier="gtk_list_store_move_before" version="2.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore.</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreeIter, or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="prepend" c:identifier="gtk_list_store_prepend"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the prepend row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="remove" c:identifier="gtk_list_store_remove"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is valid, %FALSE if not.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="reorder" c:identifier="gtk_list_store_reorder" version="2.2"> <doc xml:space="preserve">Reorders @store to follow the order indicated by @new_order. Note that this function only works with unsorted stores.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore.</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <array c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> </parameters> </method> <method name="set" c:identifier="gtk_list_store_set" shadowed-by="set_valuesv" introspectable="0"> <doc xml:space="preserve">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, "Foo", -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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">a #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">row iterator</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">pairs of column number and value, terminated with -1</doc> <varargs/> </parameter> </parameters> </method> <method name="set_column_types" c:identifier="gtk_list_store_set_column_types"> <doc xml:space="preserve">This function is meant primarily for #GObjects that inherit from #GtkListStore, and should only be used when constructing a new #GtkListStore. It will not function after a row has been added, or a method on the #GtkTreeModel interface is called.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="n_columns" transfer-ownership="none"> <doc xml:space="preserve">Number of columns for the list store</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="types" transfer-ownership="none"> <doc xml:space="preserve">An array length n of #GTypes</doc> <array length="0" zero-terminated="0" c:type="GType*"> <type name="GType" c:type="GType"/> </array> </parameter> </parameters> </method> <method name="set_valist" c:identifier="gtk_list_store_set_valist" introspectable="0"> <doc xml:space="preserve">See gtk_list_store_set(); this version takes a va_list for use by language bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter for the row being modified</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">va_list of column/value pairs</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="set_value" c:identifier="gtk_list_store_set_value"> <doc xml:space="preserve">Sets the data in the cell specified by @iter and @column. The type of @value must be convertible to the type of the column.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter for the row being modified</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">column number to modify</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">new value for the cell</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="set_valuesv" c:identifier="gtk_list_store_set_valuesv" shadows="set" version="2.12"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter for the row being modified</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="columns" transfer-ownership="none"> <doc xml:space="preserve">an array of column numbers</doc> <array length="3" zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> <parameter name="values" transfer-ownership="none"> <doc xml:space="preserve">an array of GValues</doc> <array length="3" zero-terminated="0" c:type="GValue*"> <type name="GObject.Value" c:type="GValue"/> </array> </parameter> <parameter name="n_values" transfer-ownership="none"> <doc xml:space="preserve">the length of the @columns and @values arrays</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="swap" c:identifier="gtk_list_store_swap" version="2.2"> <doc xml:space="preserve">Swaps @a and @b in @store. Note that this function only works with unsorted stores.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkListStore.</doc> <type name="ListStore" c:type="GtkListStore*"/> </instance-parameter> <parameter name="a" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="b" transfer-ownership="none"> <doc xml:space="preserve">Another #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <field name="parent"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="ListStorePrivate" c:type="GtkListStorePrivate*"/> </field> </class> <record name="ListStoreClass" c:type="GtkListStoreClass" glib:is-gtype-struct-for="ListStore"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ListStorePrivate" c:type="GtkListStorePrivate" disguised="1"> </record> <class name="LockButton" c:symbol-prefix="lock_button" c:type="GtkLockButton" parent="Button" glib:type-name="GtkLockButton" glib:get-type="gtk_lock_button_get_type" glib:type-struct="LockButtonClass"> <doc xml:space="preserve">GtkLockButton is a widget that can be used in control panels or preference dialogs to allow users to obtain and revoke authorizations needed to operate the controls. The required authorization is represented by a #GPermission object. Concrete implementations of #GPermission may use PolicyKit or some other authorization framework. To obtain a PolicyKit-based #GPermission, use polkit_permission_new(). If the user is not currently allowed to perform the action, but can obtain the permission, the widget looks like this:  and the user can click the button to request the permission. Depending on the platform, this may pop up an authentication dialog or ask the user to authenticate in some other way. Once the user has obtained the permission, the widget changes to this:  and the permission can be dropped again by clicking the button. If the user is not able to obtain the permission at all, the widget looks like this:  If the user has the permission and cannot drop it, the button is hidden. The text (and tooltips) that are shown in the various cases can be adjusted with the #GtkLockButton:text-lock, #GtkLockButton:text-unlock, #GtkLockButton:tooltip-lock, #GtkLockButton:tooltip-unlock and #GtkLockButton:tooltip-not-authorized properties.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_lock_button_new" version="3.2"> <doc xml:space="preserve">Creates a new lock button which reflects the @permission.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkLockButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="permission" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GPermission</doc> <type name="Gio.Permission" c:type="GPermission*"/> </parameter> </parameters> </constructor> <method name="get_permission" c:identifier="gtk_lock_button_get_permission" version="3.2"> <doc xml:space="preserve">Obtains the #GPermission object that controls @button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GPermission of @button</doc> <type name="Gio.Permission" c:type="GPermission*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLockButton</doc> <type name="LockButton" c:type="GtkLockButton*"/> </instance-parameter> </parameters> </method> <method name="set_permission" c:identifier="gtk_lock_button_set_permission" version="3.2"> <doc xml:space="preserve">Sets the #GPermission object that controls @button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkLockButton</doc> <type name="LockButton" c:type="GtkLockButton*"/> </instance-parameter> <parameter name="permission" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GPermission object, or %NULL</doc> <type name="Gio.Permission" c:type="GPermission*"/> </parameter> </parameters> </method> <property name="permission" writable="1" transfer-ownership="none"> <type name="Gio.Permission"/> </property> <property name="text-lock" writable="1" construct="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="text-unlock" writable="1" construct="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="tooltip-lock" writable="1" construct="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="tooltip-not-authorized" writable="1" construct="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="tooltip-unlock" writable="1" construct="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <field name="parent"> <type name="Button" c:type="GtkButton"/> </field> <field name="priv"> <type name="LockButtonPrivate" c:type="GtkLockButtonPrivate*"/> </field> </class> <class name="LockButtonAccessible" c:symbol-prefix="lock_button_accessible" c:type="GtkLockButtonAccessible" parent="ButtonAccessible" glib:type-name="GtkLockButtonAccessible" glib:get-type="gtk_lock_button_accessible_get_type" glib:type-struct="LockButtonAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="ButtonAccessible" c:type="GtkButtonAccessible"/> </field> <field name="priv"> <type name="LockButtonAccessiblePrivate" c:type="GtkLockButtonAccessiblePrivate*"/> </field> </class> <record name="LockButtonAccessibleClass" c:type="GtkLockButtonAccessibleClass" glib:is-gtype-struct-for="LockButtonAccessible"> <field name="parent_class"> <type name="ButtonAccessibleClass" c:type="GtkButtonAccessibleClass"/> </field> </record> <record name="LockButtonAccessiblePrivate" c:type="GtkLockButtonAccessiblePrivate" disguised="1"> </record> <record name="LockButtonClass" c:type="GtkLockButtonClass" glib:is-gtype-struct-for="LockButton"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ButtonClass" c:type="GtkButtonClass"/> </field> <field name="reserved0"> <callback name="reserved0"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="reserved1"> <callback name="reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="reserved2"> <callback name="reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="reserved3"> <callback name="reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="reserved4"> <callback name="reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="reserved5"> <callback name="reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="reserved6"> <callback name="reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="reserved7"> <callback name="reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="LockButtonPrivate" c:type="GtkLockButtonPrivate" disguised="1"> </record> <constant name="MAJOR_VERSION" value="3" c:type="GTK_MAJOR_VERSION"> <doc xml:space="preserve">Like gtk_get_major_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="MAX_COMPOSE_LEN" value="7" c:type="GTK_MAX_COMPOSE_LEN"> <doc xml:space="preserve">The maximum length of sequences in compose tables.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="MICRO_VERSION" value="30" c:type="GTK_MICRO_VERSION"> <doc xml:space="preserve">Like gtk_get_micro_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="MINOR_VERSION" value="22" c:type="GTK_MINOR_VERSION"> <doc xml:space="preserve">Like gtk_get_minor_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.</doc> <type name="gint" c:type="gint"/> </constant> <class name="Menu" c:symbol-prefix="menu" c:type="GtkMenu" parent="MenuShell" glib:type-name="GtkMenu" glib:get-type="gtk_menu_get_type" glib:type-struct="MenuClass"> <doc xml:space="preserve">A #GtkMenu is a #GtkMenuShell that implements a drop down menu consisting of a list of #GtkMenuItem objects which can be navigated and activated by the user to perform application functions. A #GtkMenu is most commonly dropped down by activating a #GtkMenuItem in a #GtkMenuBar or popped up by activating a #GtkMenuItem in another #GtkMenu. A #GtkMenu can also be popped up by activating a #GtkComboBox. Other composite widgets such as the #GtkNotebook can pop up a #GtkMenu as well. Applications can display a #GtkMenu as a popup menu by calling the gtk_menu_popup() function. The example below shows how an application can pop up a menu when the 3rd mouse button is pressed. ## Connecting the popup signal handler. |[<!-- language="C" --> // connect our handler which will popup the menu g_signal_connect_swapped (window, "button_press_event", G_CALLBACK (my_popup_handler), menu); ]| ## Signal handler which displays a popup menu. |[<!-- language="C" --> static gint my_popup_handler (GtkWidget *widget, GdkEvent *event) { GtkMenu *menu; GdkEventButton *event_button; g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (GTK_IS_MENU (widget), FALSE); g_return_val_if_fail (event != NULL, FALSE); // The "widget" is the menu that was supplied when // g_signal_connect_swapped() was called. menu = GTK_MENU (widget); if (event->type == GDK_BUTTON_PRESS) { event_button = (GdkEventButton *) event; if (event_button->button == GDK_BUTTON_SECONDARY) { gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event_button->button, event_button->time); return TRUE; } } return FALSE; } ]| # CSS nodes |[<!-- language="plain" --> menu âââ arrow.top âââ <child> â âââ <child> â°ââ arrow.bottom ]| The main CSS node of GtkMenu has name menu, and there are two subnodes with name arrow, for scrolling menu arrows. These subnodes get the .top and .bottom style classes.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_menu_new"> <doc xml:space="preserve">Creates a new #GtkMenu</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkMenu</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_from_model" c:identifier="gtk_menu_new_from_model" version="3.4"> <doc xml:space="preserve">Creates a #GtkMenu and populates it with menu items and submenus according to @model. The created menu items are connected to actions found in the #GtkApplicationWindow to which the menu belongs - typically by means of being attached to a widget (see gtk_menu_attach_to_widget()) that is contained within the #GtkApplicationWindows widget hierarchy. Actions can also be added using gtk_widget_insert_action_group() on the menu's attach widget or on any of its parent widgets.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkMenu</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">a #GMenuModel</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </parameter> </parameters> </constructor> <function name="get_for_attach_widget" c:identifier="gtk_menu_get_for_attach_widget" version="2.6"> <doc xml:space="preserve">Returns a list of the menus which are attached to this widget. This list is owned by GTK+ and must not be modified.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the list of menus attached to his widget.</doc> <type name="GLib.List" c:type="GList*"> <type name="Widget"/> </type> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </function> <method name="attach" c:identifier="gtk_menu_attach" version="2.4"> <doc xml:space="preserve">Adds a new #GtkMenuItem to a (table) menu. The number of âcellsâ that an item will occupy is specified by @left_attach, @right_attach, @top_attach and @bottom_attach. These each represent the leftmost, rightmost, uppermost and lower column and row numbers of the table. (Columns and rows are indexed from zero). Note that this function is not related to gtk_menu_detach().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="left_attach" transfer-ownership="none"> <doc xml:space="preserve">The column number to attach the left side of the item to</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="right_attach" transfer-ownership="none"> <doc xml:space="preserve">The column number to attach the right side of the item to</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="top_attach" transfer-ownership="none"> <doc xml:space="preserve">The row number to attach the top of the item to</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="bottom_attach" transfer-ownership="none"> <doc xml:space="preserve">The row number to attach the bottom of the item to</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="attach_to_widget" c:identifier="gtk_menu_attach_to_widget"> <doc xml:space="preserve">Attaches the menu to the widget and provides a callback function that will be invoked when the menu calls gtk_menu_detach() during its destruction. If the menu is attached to the widget then it will be destroyed when the widget is destroyed, as if it was a child widget. An attached menu will also move between screens correctly if the widgets moves between screens.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="attach_widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that the menu will be attached to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detacher" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">the user supplied callback function that will be called when the menu calls gtk_menu_detach()</doc> <type name="MenuDetachFunc" c:type="GtkMenuDetachFunc"/> </parameter> </parameters> </method> <method name="detach" c:identifier="gtk_menu_detach"> <doc xml:space="preserve">Detaches the menu from the widget to which it had been attached. This function will call the callback function, @detacher, provided when the gtk_menu_attach_to_widget() function was called.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="get_accel_group" c:identifier="gtk_menu_get_accel_group"> <doc xml:space="preserve">Gets the #GtkAccelGroup which holds global accelerators for the menu. See gtk_menu_set_accel_group().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkAccelGroup associated with the menu</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="get_accel_path" c:identifier="gtk_menu_get_accel_path" version="2.14"> <doc xml:space="preserve">Retrieves the accelerator path set on the menu.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the accelerator path set on the menu.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="get_active" c:identifier="gtk_menu_get_active"> <doc xml:space="preserve">Returns the selected menu item from the menu. This is used by the #GtkComboBox.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenuItem that was last selected in the menu. If a selection has not yet been made, the first menu item is selected.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="get_attach_widget" c:identifier="gtk_menu_get_attach_widget"> <doc xml:space="preserve">Returns the #GtkWidget that the menu is attached to.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that the menu is attached to</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="get_monitor" c:identifier="gtk_menu_get_monitor" version="2.14"> <doc xml:space="preserve">Retrieves the number of the monitor on which to show the menu.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of the monitor on which the menu should be popped up or -1, if no monitor has been set</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="get_reserve_toggle_size" c:identifier="gtk_menu_get_reserve_toggle_size" version="2.18"> <doc xml:space="preserve">Returns whether the menu reserves space for toggles and icons, regardless of their actual presence.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether the menu reserves toggle space</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="get_tearoff_state" c:identifier="gtk_menu_get_tearoff_state" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether the menu is torn off. See gtk_menu_set_tearoff_state().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menu is currently torn off.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_menu_get_title" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the title of the menu. See gtk_menu_set_title().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the title of the menu, or %NULL if the menu has no title set on it. This string is owned by GTK+ and should not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="place_on_monitor" c:identifier="gtk_menu_place_on_monitor" version="3.22"> <doc xml:space="preserve">Places @menu on the given monitor.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="monitor" transfer-ownership="none"> <doc xml:space="preserve">the monitor to place the menu on</doc> <type name="Gdk.Monitor" c:type="GdkMonitor*"/> </parameter> </parameters> </method> <method name="popdown" c:identifier="gtk_menu_popdown"> <doc xml:space="preserve">Removes the menu from the screen.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="popup" c:identifier="gtk_menu_popup" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Displays a menu and makes it available for selection. Applications can use this function to display context-sensitive menus, and will typically supply %NULL for the @parent_menu_shell, @parent_menu_item, @func and @data parameters. The default menu positioning function will position the menu at the current mouse cursor position. The @button parameter should be the mouse button pressed to initiate the menu popup. If the menu popup was initiated by something other than a mouse button press, such as a mouse button release or a keypress, @button should be 0. The @activate_time parameter is used to conflict-resolve initiation of concurrent requests for mouse/keyboard grab requests. To function properly, this needs to be the timestamp of the user event (such as a mouse click or key press) that caused the initiation of the popup. Only if no such event is available, gtk_get_current_event_time() can be used instead. Note that this function does not work very well on GDK backends that do not have global coordinates, such as Wayland or Mir. You should probably use one of the gtk_menu_popup_at_ variants, which do not have this problem.</doc> <doc-deprecated xml:space="preserve">Please use gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer(). or gtk_menu_popup_at_rect() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="parent_menu_shell" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the menu shell containing the triggering menu item, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="parent_menu_item" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the menu item whose activation triggered the popup, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="3"> <doc xml:space="preserve">a user supplied function used to position the menu, or %NULL</doc> <type name="MenuPositionFunc" c:type="GtkMenuPositionFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user supplied data to be passed to @func.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">the mouse button which was pressed to initiate the event.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="activate_time" transfer-ownership="none"> <doc xml:space="preserve">the time at which the activation event occurred.</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </method> <method name="popup_at_pointer" c:identifier="gtk_menu_popup_at_pointer" version="3.22" stability="Unstable"> <doc xml:space="preserve">Displays @menu and makes it available for selection. See gtk_menu_popup_at_widget () to pop up a menu at a widget. gtk_menu_popup_at_rect () also allows you to position a menu at an arbitrary rectangle. @menu will be positioned at the pointer associated with @trigger_event. Properties that influence the behaviour of this function are #GtkMenu:anchor-hints, #GtkMenu:rect-anchor-dx, #GtkMenu:rect-anchor-dy, and #GtkMenu:menu-type-hint. Connect to the #GtkMenu::popped-up signal to find out how it was actually positioned.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenu to pop up</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="trigger_event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GdkEvent that initiated this request or %NULL if it's the current event</doc> <type name="Gdk.Event" c:type="const GdkEvent*"/> </parameter> </parameters> </method> <method name="popup_at_rect" c:identifier="gtk_menu_popup_at_rect" version="3.22" stability="Unstable"> <doc xml:space="preserve">Displays @menu and makes it available for selection. See gtk_menu_popup_at_widget () and gtk_menu_popup_at_pointer (), which handle more common cases for popping up menus. @menu will be positioned at @rect, aligning their anchor points. @rect is relative to the top-left corner of @rect_window. @rect_anchor and @menu_anchor determine anchor points on @rect and @menu to pin together. @menu can optionally be offset by #GtkMenu:rect-anchor-dx and #GtkMenu:rect-anchor-dy. Anchors should be specified under the assumption that the text direction is left-to-right; they will be flipped horizontally automatically if the text direction is right-to-left. Other properties that influence the behaviour of this function are #GtkMenu:anchor-hints and #GtkMenu:menu-type-hint. Connect to the #GtkMenu::popped-up signal to find out how it was actually positioned.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenu to pop up</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="rect_window" transfer-ownership="none"> <doc xml:space="preserve">the #GdkWindow @rect is relative to</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="rect" transfer-ownership="none"> <doc xml:space="preserve">the #GdkRectangle to align @menu with</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="rect_anchor" transfer-ownership="none"> <doc xml:space="preserve">the point on @rect to align with @menu's anchor point</doc> <type name="Gdk.Gravity" c:type="GdkGravity"/> </parameter> <parameter name="menu_anchor" transfer-ownership="none"> <doc xml:space="preserve">the point on @menu to align with @rect's anchor point</doc> <type name="Gdk.Gravity" c:type="GdkGravity"/> </parameter> <parameter name="trigger_event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GdkEvent that initiated this request or %NULL if it's the current event</doc> <type name="Gdk.Event" c:type="const GdkEvent*"/> </parameter> </parameters> </method> <method name="popup_at_widget" c:identifier="gtk_menu_popup_at_widget" version="3.22" stability="Unstable"> <doc xml:space="preserve">Displays @menu and makes it available for selection. See gtk_menu_popup_at_pointer () to pop up a menu at the master pointer. gtk_menu_popup_at_rect () also allows you to position a menu at an arbitrary rectangle.  @menu will be positioned at @widget, aligning their anchor points. @widget_anchor and @menu_anchor determine anchor points on @widget and @menu to pin together. @menu can optionally be offset by #GtkMenu:rect-anchor-dx and #GtkMenu:rect-anchor-dy. Anchors should be specified under the assumption that the text direction is left-to-right; they will be flipped horizontally automatically if the text direction is right-to-left. Other properties that influence the behaviour of this function are #GtkMenu:anchor-hints and #GtkMenu:menu-type-hint. Connect to the #GtkMenu::popped-up signal to find out how it was actually positioned.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenu to pop up</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to align @menu with</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="widget_anchor" transfer-ownership="none"> <doc xml:space="preserve">the point on @widget to align with @menu's anchor point</doc> <type name="Gdk.Gravity" c:type="GdkGravity"/> </parameter> <parameter name="menu_anchor" transfer-ownership="none"> <doc xml:space="preserve">the point on @menu to align with @widget's anchor point</doc> <type name="Gdk.Gravity" c:type="GdkGravity"/> </parameter> <parameter name="trigger_event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GdkEvent that initiated this request or %NULL if it's the current event</doc> <type name="Gdk.Event" c:type="const GdkEvent*"/> </parameter> </parameters> </method> <method name="popup_for_device" c:identifier="gtk_menu_popup_for_device" version="3.0" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Displays a menu and makes it available for selection. Applications can use this function to display context-sensitive menus, and will typically supply %NULL for the @parent_menu_shell, @parent_menu_item, @func, @data and @destroy parameters. The default menu positioning function will position the menu at the current position of @device (or its corresponding pointer). The @button parameter should be the mouse button pressed to initiate the menu popup. If the menu popup was initiated by something other than a mouse button press, such as a mouse button release or a keypress, @button should be 0. The @activate_time parameter is used to conflict-resolve initiation of concurrent requests for mouse/keyboard grab requests. To function properly, this needs to be the time stamp of the user event (such as a mouse click or key press) that caused the initiation of the popup. Only if no such event is available, gtk_get_current_event_time() can be used instead. Note that this function does not work very well on GDK backends that do not have global coordinates, such as Wayland or Mir. You should probably use one of the gtk_menu_popup_at_ variants, which do not have this problem.</doc> <doc-deprecated xml:space="preserve">Please use gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer(). or gtk_menu_popup_at_rect() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="device" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> <parameter name="parent_menu_shell" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the menu shell containing the triggering menu item, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="parent_menu_item" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the menu item whose activation triggered the popup, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="4" destroy="5"> <doc xml:space="preserve">a user supplied function used to position the menu, or %NULL</doc> <type name="MenuPositionFunc" c:type="GtkMenuPositionFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user supplied data to be passed to @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">destroy notify for @data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">the mouse button which was pressed to initiate the event</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="activate_time" transfer-ownership="none"> <doc xml:space="preserve">the time at which the activation event occurred</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </method> <method name="reorder_child" c:identifier="gtk_menu_reorder_child"> <doc xml:space="preserve">Moves @child to a new @position in the list of @menu children.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenuItem to move</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the new position to place @child. Positions are numbered from 0 to n - 1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="reposition" c:identifier="gtk_menu_reposition"> <doc xml:space="preserve">Repositions the menu according to its position function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> </parameters> </method> <method name="set_accel_group" c:identifier="gtk_menu_set_accel_group"> <doc xml:space="preserve">Set the #GtkAccelGroup which holds global accelerators for the menu. This accelerator group needs to also be added to all windows that this menu is being used in with gtk_window_add_accel_group(), in order for those windows to support all the accelerators contained in this group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="accel_group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkAccelGroup to be associated with the menu.</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> </parameters> </method> <method name="set_accel_path" c:identifier="gtk_menu_set_accel_path"> <doc xml:space="preserve">Sets an accelerator path for this menu from which accelerator paths for its immediate children, its menu items, can be constructed. The main purpose of this function is to spare the programmer the inconvenience of having to call gtk_menu_item_set_accel_path() on each menu item that should support runtime user changable accelerators. Instead, by just calling gtk_menu_set_accel_path() on their parent, each menu item of this menu, that contains a label describing its purpose, automatically gets an accel path assigned. For example, a menu containing menu items âNewâ and âExitâ, will, after `gtk_menu_set_accel_path (menu, "<Gnumeric-Sheet>/File");` has been called, assign its items the accel paths: `"<Gnumeric-Sheet>/File/New"` and `"<Gnumeric-Sheet>/File/Exit"`. Assigning accel paths to menu items then enables the user to change their accelerators at runtime. More details about accelerator paths and their default setups can be found at gtk_accel_map_add_entry(). Note that @accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="accel_path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a valid accelerator path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_active" c:identifier="gtk_menu_set_active"> <doc xml:space="preserve">Selects the specified menu item within the menu. This is used by the #GtkComboBox and should not be used by anyone else.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="index" transfer-ownership="none"> <doc xml:space="preserve">the index of the menu item to select. Index values are from 0 to n-1</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_monitor" c:identifier="gtk_menu_set_monitor" version="2.4"> <doc xml:space="preserve">Informs GTK+ on which monitor a menu should be popped up. See gdk_monitor_get_geometry(). This function should be called from a #GtkMenuPositionFunc if the menu should not appear on the same monitor as the pointer. This information canât be reliably inferred from the coordinates returned by a #GtkMenuPositionFunc, since, for very long menus, these coordinates may extend beyond the monitor boundaries or even the screen boundaries.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="monitor_num" transfer-ownership="none"> <doc xml:space="preserve">the number of the monitor on which the menu should be popped up</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_reserve_toggle_size" c:identifier="gtk_menu_set_reserve_toggle_size" version="2.18"> <doc xml:space="preserve">Sets whether the menu should reserve space for drawing toggles or icons, regardless of their actual presence.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="reserve_toggle_size" transfer-ownership="none"> <doc xml:space="preserve">whether to reserve size for toggles</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_screen" c:identifier="gtk_menu_set_screen" version="2.2"> <doc xml:space="preserve">Sets the #GdkScreen on which the menu will be displayed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="screen" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkScreen, or %NULL if the screen should be determined by the widget the menu is attached to</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </method> <method name="set_tearoff_state" c:identifier="gtk_menu_set_tearoff_state" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Changes the tearoff state of the menu. A menu is normally displayed as drop down menu which persists as long as the menu is active. It can also be displayed as a tearoff menu which persists until it is closed or reattached.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="torn_off" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, menu is displayed as a tearoff menu.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_menu_set_title" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the title string for the menu. The title is displayed when the menu is shown as a tearoff menu. If @title is %NULL, the menu will see if it is attached to a parent menu item, and if so it will try to use the same text as that menu itemâs label.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">a string containing the title for the menu</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="accel-group" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The accel group holding accelerators for the menu.</doc> <type name="AccelGroup"/> </property> <property name="accel-path" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">An accel path used to conveniently construct accel paths of child items.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="active" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The index of the currently selected menu item, or -1 if no menu item is selected.</doc> <type name="gint" c:type="gint"/> </property> <property name="anchor-hints" version="3.22" stability="Unstable" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">Positioning hints for aligning the menu relative to a rectangle. These hints determine how the menu should be positioned in the case that the menu would fall off-screen if placed in its ideal position.  For example, %GDK_ANCHOR_FLIP_Y will replace %GDK_GRAVITY_NORTH_WEST with %GDK_GRAVITY_SOUTH_WEST and vice versa if the menu extends beyond the bottom edge of the monitor. See gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (), gtk_menu_popup_at_pointer (), #GtkMenu:rect-anchor-dx, #GtkMenu:rect-anchor-dy, #GtkMenu:menu-type-hint, and #GtkMenu::popped-up.</doc> <type name="Gdk.AnchorHints"/> </property> <property name="attach-widget" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The widget the menu is attached to. Setting this property attaches the menu without a #GtkMenuDetachFunc. If you need to use a detacher, use gtk_menu_attach_to_widget() directly.</doc> <type name="Widget"/> </property> <property name="menu-type-hint" version="3.22" stability="Unstable" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The #GdkWindowTypeHint to use for the menu's #GdkWindow. See gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (), gtk_menu_popup_at_pointer (), #GtkMenu:anchor-hints, #GtkMenu:rect-anchor-dx, #GtkMenu:rect-anchor-dy, and #GtkMenu::popped-up.</doc> <type name="Gdk.WindowTypeHint"/> </property> <property name="monitor" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The monitor the menu will be popped up on.</doc> <type name="gint" c:type="gint"/> </property> <property name="rect-anchor-dx" version="3.22" stability="Unstable" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">Horizontal offset to apply to the menu, i.e. the rectangle or widget anchor. See gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (), gtk_menu_popup_at_pointer (), #GtkMenu:anchor-hints, #GtkMenu:rect-anchor-dy, #GtkMenu:menu-type-hint, and #GtkMenu::popped-up.</doc> <type name="gint" c:type="gint"/> </property> <property name="rect-anchor-dy" version="3.22" stability="Unstable" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">Vertical offset to apply to the menu, i.e. the rectangle or widget anchor. See gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (), gtk_menu_popup_at_pointer (), #GtkMenu:anchor-hints, #GtkMenu:rect-anchor-dx, #GtkMenu:menu-type-hint, and #GtkMenu::popped-up.</doc> <type name="gint" c:type="gint"/> </property> <property name="reserve-toggle-size" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A boolean that indicates whether the menu reserves space for toggles and icons, regardless of their actual presence. This property should only be changed from its default value for special-purposes such as tabular menus. Regular menus that are connected to a menu bar or context menus should reserve toggle space for consistency.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="tearoff-state" version="2.6" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A boolean that indicates whether the menu is torn-off.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="tearoff-title" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A title that may be displayed by the window manager when this menu is torn-off.</doc> <type name="utf8" c:type="gchar*"/> </property> <field name="menu_shell"> <type name="MenuShell" c:type="GtkMenuShell"/> </field> <field name="priv" readable="0" private="1"> <type name="MenuPrivate" c:type="GtkMenuPrivate*"/> </field> <glib:signal name="move-scroll" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="scroll_type" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollType</doc> <type name="ScrollType"/> </parameter> </parameters> </glib:signal> <glib:signal name="popped-up" when="first" version="3.22" stability="Unstable"> <doc xml:space="preserve">Emitted when the position of @menu is finalized after being popped up using gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (), or gtk_menu_popup_at_pointer (). @menu might be flipped over the anchor rectangle in order to keep it on-screen, in which case @flipped_x and @flipped_y will be set to %TRUE accordingly. @flipped_rect is the ideal position of @menu after any possible flipping, but before any possible sliding. @final_rect is @flipped_rect, but possibly translated in the case that flipping is still ineffective in keeping @menu on-screen.  The blue menu is @menu's ideal position, the green menu is @flipped_rect, and the red menu is @final_rect. See gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (), gtk_menu_popup_at_pointer (), #GtkMenu:anchor-hints, #GtkMenu:rect-anchor-dx, #GtkMenu:rect-anchor-dy, and #GtkMenu:menu-type-hint.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="flipped_rect" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the position of @menu after any possible flipping or %NULL if the backend can't obtain it</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="final_rect" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the final position of @menu or %NULL if the backend can't obtain it</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="flipped_x" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the anchors were flipped horizontally</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="flipped_y" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the anchors were flipped vertically</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> </class> <class name="MenuAccessible" c:symbol-prefix="menu_accessible" c:type="GtkMenuAccessible" parent="MenuShellAccessible" glib:type-name="GtkMenuAccessible" glib:get-type="gtk_menu_accessible_get_type" glib:type-struct="MenuAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="MenuShellAccessible" c:type="GtkMenuShellAccessible"/> </field> <field name="priv"> <type name="MenuAccessiblePrivate" c:type="GtkMenuAccessiblePrivate*"/> </field> </class> <record name="MenuAccessibleClass" c:type="GtkMenuAccessibleClass" glib:is-gtype-struct-for="MenuAccessible"> <field name="parent_class"> <type name="MenuShellAccessibleClass" c:type="GtkMenuShellAccessibleClass"/> </field> </record> <record name="MenuAccessiblePrivate" c:type="GtkMenuAccessiblePrivate" disguised="1"> </record> <class name="MenuBar" c:symbol-prefix="menu_bar" c:type="GtkMenuBar" parent="MenuShell" glib:type-name="GtkMenuBar" glib:get-type="gtk_menu_bar_get_type" glib:type-struct="MenuBarClass"> <doc xml:space="preserve">The #GtkMenuBar is a subclass of #GtkMenuShell which contains one or more #GtkMenuItems. The result is a standard menu bar which can hold many menu items. # CSS nodes GtkMenuBar has a single CSS node with name menubar.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_menu_bar_new"> <doc xml:space="preserve">Creates a new #GtkMenuBar</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new menu bar, as a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_from_model" c:identifier="gtk_menu_bar_new_from_model" version="3.4"> <doc xml:space="preserve">Creates a new #GtkMenuBar and populates it with menu items and submenus according to @model. The created menu items are connected to actions found in the #GtkApplicationWindow to which the menu bar belongs - typically by means of being contained within the #GtkApplicationWindows widget hierarchy.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkMenuBar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">a #GMenuModel</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </parameter> </parameters> </constructor> <method name="get_child_pack_direction" c:identifier="gtk_menu_bar_get_child_pack_direction" version="2.8"> <doc xml:space="preserve">Retrieves the current child pack direction of the menubar. See gtk_menu_bar_set_child_pack_direction().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the child pack direction</doc> <type name="PackDirection" c:type="GtkPackDirection"/> </return-value> <parameters> <instance-parameter name="menubar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuBar</doc> <type name="MenuBar" c:type="GtkMenuBar*"/> </instance-parameter> </parameters> </method> <method name="get_pack_direction" c:identifier="gtk_menu_bar_get_pack_direction" version="2.8"> <doc xml:space="preserve">Retrieves the current pack direction of the menubar. See gtk_menu_bar_set_pack_direction().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the pack direction</doc> <type name="PackDirection" c:type="GtkPackDirection"/> </return-value> <parameters> <instance-parameter name="menubar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuBar</doc> <type name="MenuBar" c:type="GtkMenuBar*"/> </instance-parameter> </parameters> </method> <method name="set_child_pack_direction" c:identifier="gtk_menu_bar_set_child_pack_direction" version="2.8"> <doc xml:space="preserve">Sets how widgets should be packed inside the children of a menubar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menubar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuBar</doc> <type name="MenuBar" c:type="GtkMenuBar*"/> </instance-parameter> <parameter name="child_pack_dir" transfer-ownership="none"> <doc xml:space="preserve">a new #GtkPackDirection</doc> <type name="PackDirection" c:type="GtkPackDirection"/> </parameter> </parameters> </method> <method name="set_pack_direction" c:identifier="gtk_menu_bar_set_pack_direction" version="2.8"> <doc xml:space="preserve">Sets how items should be packed inside a menubar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menubar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuBar</doc> <type name="MenuBar" c:type="GtkMenuBar*"/> </instance-parameter> <parameter name="pack_dir" transfer-ownership="none"> <doc xml:space="preserve">a new #GtkPackDirection</doc> <type name="PackDirection" c:type="GtkPackDirection"/> </parameter> </parameters> </method> <property name="child-pack-direction" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The child pack direction of the menubar. It determines how the widgets contained in child menuitems are arranged.</doc> <type name="PackDirection"/> </property> <property name="pack-direction" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The pack direction of the menubar. It determines how menuitems are arranged in the menubar.</doc> <type name="PackDirection"/> </property> <field name="menu_shell"> <type name="MenuShell" c:type="GtkMenuShell"/> </field> <field name="priv" readable="0" private="1"> <type name="MenuBarPrivate" c:type="GtkMenuBarPrivate*"/> </field> </class> <record name="MenuBarClass" c:type="GtkMenuBarClass" glib:is-gtype-struct-for="MenuBar"> <field name="parent_class"> <type name="MenuShellClass" c:type="GtkMenuShellClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="MenuBarPrivate" c:type="GtkMenuBarPrivate" disguised="1"> </record> <class name="MenuButton" c:symbol-prefix="menu_button" c:type="GtkMenuButton" parent="ToggleButton" glib:type-name="GtkMenuButton" glib:get-type="gtk_menu_button_get_type" glib:type-struct="MenuButtonClass"> <doc xml:space="preserve">The #GtkMenuButton widget is used to display a popup when clicked on. This popup can be provided either as a #GtkMenu, a #GtkPopover or an abstract #GMenuModel. The #GtkMenuButton widget can hold any valid child widget. That is, it can hold almost any other standard #GtkWidget. The most commonly used child is #GtkImage. If no widget is explicitely added to the #GtkMenuButton, a #GtkImage is automatically created, using an arrow image oriented according to #GtkMenuButton:direction or the generic âopen-menu-symbolicâ icon if the direction is not set. The positioning of the popup is determined by the #GtkMenuButton:direction property of the menu button. For menus, the #GtkWidget:halign and #GtkWidget:valign properties of the menu are also taken into account. For example, when the direction is %GTK_ARROW_DOWN and the horizontal alignment is %GTK_ALIGN_START, the menu will be positioned below the button, with the starting edge (depending on the text direction) of the menu aligned with the starting edge of the button. If there is not enough space below the button, the menu is popped up above the button instead. If the alignment would move part of the menu offscreen, it is âpushed inâ. ## Direction = Down - halign = start  - halign = center  - halign = end  ## Direction = Up - halign = start  - halign = center  - halign = end  ## Direction = Left - valign = start  - valign = center  - valign = end  ## Direction = Right - valign = start  - valign = center  - valign = end  # CSS nodes GtkMenuButton has a single CSS node with name button. To differentiate it from a plain #GtkButton, it gets the .popup style class.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_menu_button_new" version="3.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The newly created #GtkMenuButton widget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_align_widget" c:identifier="gtk_menu_button_get_align_widget" version="3.6"> <doc xml:space="preserve">Returns the parent #GtkWidget to use to line up with menu.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkWidget value or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> </parameters> </method> <method name="get_direction" c:identifier="gtk_menu_button_get_direction" version="3.6"> <doc xml:space="preserve">Returns the direction the popup will be pointing at when popped up.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkArrowType value</doc> <type name="ArrowType" c:type="GtkArrowType"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> </parameters> </method> <method name="get_menu_model" c:identifier="gtk_menu_button_get_menu_model" version="3.6"> <doc xml:space="preserve">Returns the #GMenuModel used to generate the popup.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GMenuModel or %NULL</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> </parameters> </method> <method name="get_popover" c:identifier="gtk_menu_button_get_popover" version="3.12"> <doc xml:space="preserve">Returns the #GtkPopover that pops out of the button. If the button is not using a #GtkPopover, this function returns %NULL.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkPopover or %NULL</doc> <type name="Popover" c:type="GtkPopover*"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> </parameters> </method> <method name="get_popup" c:identifier="gtk_menu_button_get_popup" version="3.6"> <doc xml:space="preserve">Returns the #GtkMenu that pops out of the button. If the button does not use a #GtkMenu, this function returns %NULL.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkMenu or %NULL</doc> <type name="Menu" c:type="GtkMenu*"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> </parameters> </method> <method name="get_use_popover" c:identifier="gtk_menu_button_get_use_popover" version="3.12"> <doc xml:space="preserve">Returns whether a #GtkPopover or a #GtkMenu will be constructed from the menu model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if using a #GtkPopover</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> </parameters> </method> <method name="set_align_widget" c:identifier="gtk_menu_button_set_align_widget" version="3.6"> <doc xml:space="preserve">Sets the #GtkWidget to use to line the menu with when popped up. Note that the @align_widget must contain the #GtkMenuButton itself. Setting it to %NULL means that the menu will be aligned with the button itself. Note that this property is only used with menus currently, and not for popovers.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> <parameter name="align_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_direction" c:identifier="gtk_menu_button_set_direction" version="3.6"> <doc xml:space="preserve">Sets the direction in which the popup will be popped up, as well as changing the arrowâs direction. The child will not be changed to an arrow if it was customized. 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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">a #GtkArrowType</doc> <type name="ArrowType" c:type="GtkArrowType"/> </parameter> </parameters> </method> <method name="set_menu_model" c:identifier="gtk_menu_button_set_menu_model" version="3.6"> <doc xml:space="preserve">Sets the #GMenuModel from which the popup will be constructed, or %NULL to disable the button. Depending on the value of #GtkMenuButton:use-popover, either a #GtkMenu will be created with gtk_menu_new_from_model(), or a #GtkPopover with gtk_popover_new_from_model(). In either case, actions will be connected as documented for these functions. If #GtkMenuButton:popup or #GtkMenuButton:popover are already set, their content will be lost and replaced by the newly created popup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> <parameter name="menu_model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GMenuModel</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </parameter> </parameters> </method> <method name="set_popover" c:identifier="gtk_menu_button_set_popover" version="3.12"> <doc xml:space="preserve">Sets the #GtkPopover that will be popped up when the button is clicked, or %NULL to disable the button. If #GtkMenuButton:menu-model or #GtkMenuButton:popup are set, they will be set to %NULL.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> <parameter name="popover" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_popup" c:identifier="gtk_menu_button_set_popup" version="3.6"> <doc xml:space="preserve">Sets the #GtkMenu that will be popped up when the button is clicked, or %NULL to disable the button. If #GtkMenuButton:menu-model or #GtkMenuButton:popover are set, they will be set to %NULL.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> <parameter name="menu" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkMenu</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_use_popover" c:identifier="gtk_menu_button_set_use_popover" version="3.12"> <doc xml:space="preserve">Sets whether to construct a #GtkPopover instead of #GtkMenu when gtk_menu_button_set_menu_model() is called. Note that this property is only consulted when a new menu model is set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuButton</doc> <type name="MenuButton" c:type="GtkMenuButton*"/> </instance-parameter> <parameter name="use_popover" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to construct a popover from the menu model</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="align-widget" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkWidget to use to align the menu with.</doc> <type name="Container"/> </property> <property name="direction" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkArrowType representing the direction in which the menu or popover will be popped out.</doc> <type name="ArrowType"/> </property> <property name="menu-model" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GMenuModel from which the popup will be created. Depending on the #GtkMenuButton:use-popover property, that may be a menu or a popover. See gtk_menu_button_set_menu_model() for the interaction with the #GtkMenuButton:popup property.</doc> <type name="Gio.MenuModel"/> </property> <property name="popover" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkPopover that will be popped up when the button is clicked.</doc> <type name="Popover"/> </property> <property name="popup" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenu that will be popped up when the button is clicked.</doc> <type name="Menu"/> </property> <property name="use-popover" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to construct a #GtkPopover from the menu model, or a #GtkMenu.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="ToggleButton" c:type="GtkToggleButton"/> </field> <field name="priv" readable="0" private="1"> <type name="MenuButtonPrivate" c:type="GtkMenuButtonPrivate*"/> </field> </class> <class name="MenuButtonAccessible" c:symbol-prefix="menu_button_accessible" c:type="GtkMenuButtonAccessible" parent="ToggleButtonAccessible" glib:type-name="GtkMenuButtonAccessible" glib:get-type="gtk_menu_button_accessible_get_type" glib:type-struct="MenuButtonAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="ToggleButtonAccessible" c:type="GtkToggleButtonAccessible"/> </field> <field name="priv"> <type name="MenuButtonAccessiblePrivate" c:type="GtkMenuButtonAccessiblePrivate*"/> </field> </class> <record name="MenuButtonAccessibleClass" c:type="GtkMenuButtonAccessibleClass" glib:is-gtype-struct-for="MenuButtonAccessible"> <field name="parent_class"> <type name="ToggleButtonAccessibleClass" c:type="GtkToggleButtonAccessibleClass"/> </field> </record> <record name="MenuButtonAccessiblePrivate" c:type="GtkMenuButtonAccessiblePrivate" disguised="1"> </record> <record name="MenuButtonClass" c:type="GtkMenuButtonClass" glib:is-gtype-struct-for="MenuButton"> <field name="parent_class"> <type name="ToggleButtonClass" c:type="GtkToggleButtonClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="MenuButtonPrivate" c:type="GtkMenuButtonPrivate" disguised="1"> </record> <record name="MenuClass" c:type="GtkMenuClass" glib:is-gtype-struct-for="Menu"> <field name="parent_class"> <type name="MenuShellClass" c:type="GtkMenuShellClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="MenuDetachFunc" c:type="GtkMenuDetachFunc"> <doc xml:space="preserve">A user function supplied when calling gtk_menu_attach_to_widget() which will be called when the menu is later detached from the widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="attach_widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget that the menu is being detached from.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenu being detached.</doc> <type name="Menu" c:type="GtkMenu*"/> </parameter> </parameters> </callback> <enumeration name="MenuDirectionType" glib:type-name="GtkMenuDirectionType" glib:get-type="gtk_menu_direction_type_get_type" c:type="GtkMenuDirectionType"> <doc xml:space="preserve">An enumeration representing directional movements within a menu.</doc> <member name="parent" value="0" c:identifier="GTK_MENU_DIR_PARENT" glib:nick="parent"> <doc xml:space="preserve">To the parent menu shell</doc> </member> <member name="child" value="1" c:identifier="GTK_MENU_DIR_CHILD" glib:nick="child"> <doc xml:space="preserve">To the submenu, if any, associated with the item</doc> </member> <member name="next" value="2" c:identifier="GTK_MENU_DIR_NEXT" glib:nick="next"> <doc xml:space="preserve">To the next menu item</doc> </member> <member name="prev" value="3" c:identifier="GTK_MENU_DIR_PREV" glib:nick="prev"> <doc xml:space="preserve">To the previous menu item</doc> </member> </enumeration> <class name="MenuItem" c:symbol-prefix="menu_item" c:type="GtkMenuItem" parent="Bin" glib:type-name="GtkMenuItem" glib:get-type="gtk_menu_item_get_type" glib:type-struct="MenuItemClass"> <doc xml:space="preserve">The #GtkMenuItem widget and the derived widgets are the only valid children for menus. Their function is to correctly handle highlighting, alignment, events and submenus. As a GtkMenuItem derives from #GtkBin it can hold any valid child widget, although only a few are really useful. By default, a GtkMenuItem sets a #GtkAccelLabel as its child. GtkMenuItem has direct functions to set the label and its mnemonic. For more advanced label settings, you can fetch the child widget from the GtkBin. An example for setting markup and accelerator on a MenuItem: |[<!-- language="C" --> GtkWidget *menu_item = gtk_menu_item_new_with_label ("Example Menu Item"); GtkWidget *child = gtk_bin_get_child (GTK_BIN (menu_item)); gtk_label_set_markup (GTK_LABEL (child), "<i>new label</i> with <b>markup</b>"); gtk_accel_label_set_accel (GTK_ACCEL_LABEL (child), GDK_KEY_1, 0); ]| # GtkMenuItem as GtkBuildable The GtkMenuItem implementation of the #GtkBuildable interface supports adding a submenu by specifying âsubmenuâ as the âtypeâ attribute of a <child> element. An example of UI definition fragment with submenus: |[ <object class="GtkMenuItem"> <child type="submenu"> <object class="GtkMenu"/> </child> </object> ]| # CSS nodes |[<!-- language="plain" --> menuitem âââ <child> â°ââ [arrow.right] ]| GtkMenuItem has a single CSS node with name menuitem. If the menuitem has a submenu, it gets another CSS node with name arrow, which has the .left or .right style class.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_menu_item_new"> <doc xml:space="preserve">Creates a new #GtkMenuItem.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the newly created #GtkMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_label" c:identifier="gtk_menu_item_new_with_label"> <doc xml:space="preserve">Creates a new #GtkMenuItem whose child is a #GtkLabel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the newly created #GtkMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text for the label</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_menu_item_new_with_mnemonic"> <doc xml:space="preserve">Creates a new #GtkMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in @label indicate the mnemonic for the menu item.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">The text of the button, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="activate" invoker="activate"> <doc xml:space="preserve">Emits the #GtkMenuItem::activate signal on the given item</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="activate_item"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="deselect" invoker="deselect"> <doc xml:space="preserve">Emits the #GtkMenuItem::deselect signal on the given item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_label" invoker="get_label" version="2.16"> <doc xml:space="preserve">Sets @text on the @menu_item label</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The text in the @menu_item label. This is the internal string used by the label, and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="select" invoker="select"> <doc xml:space="preserve">Emits the #GtkMenuItem::select signal on the given item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="set_label" invoker="set_label" version="2.16"> <doc xml:space="preserve">Sets @text on the @menu_item label</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text you want to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="toggle_size_allocate" invoker="toggle_size_allocate"> <doc xml:space="preserve">Emits the #GtkMenuItem::toggle-size-allocate signal on the given item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item.</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">the allocation to use as signal data.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="toggle_size_request" invoker="toggle_size_request"> <doc xml:space="preserve">Emits the #GtkMenuItem::toggle-size-request signal on the given item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="requisition" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">the requisition to use as signal data.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <method name="activate" c:identifier="gtk_menu_item_activate"> <doc xml:space="preserve">Emits the #GtkMenuItem::activate signal on the given item</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="deselect" c:identifier="gtk_menu_item_deselect"> <doc xml:space="preserve">Emits the #GtkMenuItem::deselect signal on the given item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_accel_path" c:identifier="gtk_menu_item_get_accel_path" version="2.14"> <doc xml:space="preserve">Retrieve the accelerator path that was previously set on @menu_item. See gtk_menu_item_set_accel_path() for details.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the accelerator path corresponding to this menu itemâs functionality, or %NULL if not set</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_label" c:identifier="gtk_menu_item_get_label" version="2.16"> <doc xml:space="preserve">Sets @text on the @menu_item label</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The text in the @menu_item label. This is the internal string used by the label, and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_reserve_indicator" c:identifier="gtk_menu_item_get_reserve_indicator" version="3.0"> <doc xml:space="preserve">Returns whether the @menu_item reserves space for the submenu indicator, regardless if it has a submenu or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @menu_item always reserves space for the submenu indicator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_right_justified" c:identifier="gtk_menu_item_get_right_justified" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Gets whether the menu item appears justified at the right side of the menu bar.</doc> <doc-deprecated xml:space="preserve">See gtk_menu_item_set_right_justified()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menu item will appear at the far right if added to a menu bar.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_submenu" c:identifier="gtk_menu_item_get_submenu"> <doc xml:space="preserve">Gets the submenu underneath this menu item, if any. See gtk_menu_item_set_submenu().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">submenu for this menu item, or %NULL if none</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="get_use_underline" c:identifier="gtk_menu_item_get_use_underline" version="2.16"> <doc xml:space="preserve">Checks if an underline in the text indicates the next character should be used for the mnemonic accelerator key.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an embedded underline in the label indicates the mnemonic accelerator key.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="select" c:identifier="gtk_menu_item_select"> <doc xml:space="preserve">Emits the #GtkMenuItem::select signal on the given item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> </parameters> </method> <method name="set_accel_path" c:identifier="gtk_menu_item_set_accel_path"> <doc xml:space="preserve">Set the accelerator path on @menu_item, through which runtime changes of the menu itemâs accelerator caused by the user can be identified and saved to persistent storage (see gtk_accel_map_save() on this). To set up a default accelerator for this menu item, call gtk_accel_map_add_entry() with the same @accel_path. See also gtk_accel_map_add_entry() on the specifics of accelerator paths, and gtk_menu_set_accel_path() for a more convenient variant of this function. This function is basically a convenience wrapper that handles calling gtk_widget_set_accel_path() with the appropriate accelerator group for the menu item. Note that you do need to set an accelerator on the parent menu with gtk_menu_set_accel_group() for this to work. Note that @accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="accel_path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">accelerator path, corresponding to this menu itemâs functionality, or %NULL to unset the current path.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_menu_item_set_label" version="2.16"> <doc xml:space="preserve">Sets @text on the @menu_item label</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text you want to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_reserve_indicator" c:identifier="gtk_menu_item_set_reserve_indicator" version="3.0"> <doc xml:space="preserve">Sets whether the @menu_item should reserve space for the submenu indicator, regardless if it actually has a submenu or not. There should be little need for applications to call this functions.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="reserve" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_right_justified" c:identifier="gtk_menu_item_set_right_justified" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Sets whether the menu item appears justified at the right side of a menu bar. This was traditionally done for âHelpâ menu items, but is now considered a bad idea. (If the widget layout is reversed for a right-to-left language like Hebrew or Arabic, right-justified-menu-items appear at the left.)</doc> <doc-deprecated xml:space="preserve">If you insist on using it, use gtk_widget_set_hexpand() and gtk_widget_set_halign().</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem.</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="right_justified" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE the menu item will appear at the far right if added to a menu bar</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_submenu" c:identifier="gtk_menu_item_set_submenu"> <doc xml:space="preserve">Sets or replaces the menu itemâs submenu, or removes it when a %NULL submenu is passed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="submenu" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the submenu, or %NULL</doc> <type name="Menu" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_use_underline" c:identifier="gtk_menu_item_set_use_underline" version="2.16"> <doc xml:space="preserve">If true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if underlines in the text indicate mnemonics</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="toggle_size_allocate" c:identifier="gtk_menu_item_toggle_size_allocate"> <doc xml:space="preserve">Emits the #GtkMenuItem::toggle-size-allocate signal on the given item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item.</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">the allocation to use as signal data.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="toggle_size_request" c:identifier="gtk_menu_item_toggle_size_request"> <doc xml:space="preserve">Emits the #GtkMenuItem::toggle-size-request signal on the given item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </instance-parameter> <parameter name="requisition" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">the requisition to use as signal data.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <property name="accel-path" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets the accelerator path of the menu item, through which runtime changes of the menu item's accelerator caused by the user can be identified and saved to persistant storage.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="label" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text for the child label.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="right-justified" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets whether the menu item appears justified at the right side of a menu bar.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="submenu" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The submenu attached to the menu item, or %NULL if it has none.</doc> <type name="Menu"/> </property> <property name="use-underline" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if underlines in the text indicate mnemonics.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="bin"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="MenuItemPrivate" c:type="GtkMenuItemPrivate*"/> </field> <glib:signal name="activate" when="first" action="1"> <doc xml:space="preserve">Emitted when the item is activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="activate-item" when="first"> <doc xml:space="preserve">Emitted when the item is activated, but also if the menu item has a submenu. For normal applications, the relevant signal is #GtkMenuItem::activate.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="deselect" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="select" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="toggle-size-allocate" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="toggle-size-request" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </glib:signal> </class> <class name="MenuItemAccessible" c:symbol-prefix="menu_item_accessible" c:type="GtkMenuItemAccessible" parent="ContainerAccessible" glib:type-name="GtkMenuItemAccessible" glib:get-type="gtk_menu_item_accessible_get_type" glib:type-struct="MenuItemAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="MenuItemAccessiblePrivate" c:type="GtkMenuItemAccessiblePrivate*"/> </field> </class> <record name="MenuItemAccessibleClass" c:type="GtkMenuItemAccessibleClass" glib:is-gtype-struct-for="MenuItemAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="MenuItemAccessiblePrivate" c:type="GtkMenuItemAccessiblePrivate" disguised="1"> </record> <record name="MenuItemClass" c:type="GtkMenuItemClass" glib:is-gtype-struct-for="MenuItem"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="hide_on_activate" bits="1"> <doc xml:space="preserve">If %TRUE, then we should always hide the menu when the %GtkMenuItem is activated. Otherwise, it is up to the caller.</doc> <type name="guint" c:type="guint"/> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </parameter> </parameters> </callback> </field> <field name="activate_item"> <callback name="activate_item"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_item" transfer-ownership="none"> <type name="MenuItem" c:type="GtkMenuItem*"/> </parameter> </parameters> </callback> </field> <field name="toggle_size_request"> <callback name="toggle_size_request"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </parameter> <parameter name="requisition" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">the requisition to use as signal data.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="toggle_size_allocate"> <callback name="toggle_size_allocate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item.</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </parameter> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">the allocation to use as signal data.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="set_label"> <callback name="set_label"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text you want to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="get_label"> <callback name="get_label"> <return-value transfer-ownership="none"> <doc xml:space="preserve">The text in the @menu_item label. This is the internal string used by the label, and must not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuItem</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </parameter> </parameters> </callback> </field> <field name="select"> <callback name="select"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </parameter> </parameters> </callback> </field> <field name="deselect"> <callback name="deselect"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the menu item</doc> <type name="MenuItem" c:type="GtkMenuItem*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="MenuItemPrivate" c:type="GtkMenuItemPrivate" disguised="1"> </record> <callback name="MenuPositionFunc" c:type="GtkMenuPositionFunc"> <doc xml:space="preserve">A user function supplied when calling gtk_menu_popup() which controls the positioning of the menu when it is displayed. The function sets the @x and @y parameters to the coordinates where the menu is to be drawn. To make the menu appear on a different monitor than the mouse pointer, gtk_menu_set_monitor() must be called.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu.</doc> <type name="Menu" c:type="GtkMenu*"/> </parameter> <parameter name="x" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">address of the #gint representing the horizontal position where the menu shall be drawn.</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">address of the #gint representing the vertical position where the menu shall be drawn. This is an output parameter.</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="push_in" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">This parameter controls how menus placed outside the monitor are handled. If this is set to %TRUE and part of the menu is outside the monitor then GTK+ pushes the window into the visible area, effectively modifying the popup position. Note that moving and possibly resizing the menu around will alter the scroll position to keep the menu items âin placeâ, i.e. at the same monitor position they would have been without resizing. In practice, this behavior is only useful for combobox popups or option menus and cannot be used to simply confine a menu to monitor boundaries. In that case, changing the scroll offset is not desirable.</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">the data supplied by the user in the gtk_menu_popup() @data parameter.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="MenuPrivate" c:type="GtkMenuPrivate" disguised="1"> </record> <class name="MenuShell" c:symbol-prefix="menu_shell" c:type="GtkMenuShell" parent="Container" abstract="1" glib:type-name="GtkMenuShell" glib:get-type="gtk_menu_shell_get_type" glib:type-struct="MenuShellClass"> <doc xml:space="preserve">A #GtkMenuShell is the abstract base class used to derive the #GtkMenu and #GtkMenuBar subclasses. A #GtkMenuShell is a container of #GtkMenuItem objects arranged in a list which can be navigated, selected, and activated by the user to perform application functions. A #GtkMenuItem can have a submenu associated with it, allowing for nested hierarchical menus. # Terminology A menu item can be âselectedâ, this means that it is displayed in the prelight state, and if it has a submenu, that submenu will be popped up. A menu is âactiveâ when it is visible onscreen and the user is selecting from it. A menubar is not active until the user clicks on one of its menuitems. When a menu is active, passing the mouse over a submenu will pop it up. There is also is a concept of the current menu and a current menu item. The current menu item is the selected menu item that is furthest down in the hierarchy. (Every active menu shell does not necessarily contain a selected menu item, but if it does, then the parent menu shell must also contain a selected menu item.) The current menu is the menu that contains the current menu item. It will always have a GTK grab and receive all key presses.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <virtual-method name="activate_current"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="force_hide" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="cancel" invoker="cancel" version="2.4"> <doc xml:space="preserve">Cancels the selection within the menu shell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="deactivate" invoker="deactivate"> <doc xml:space="preserve">Deactivates the menu shell. Typically this results in the menu shell being erased from the screen.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_popup_delay"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="insert" invoker="insert"> <doc xml:space="preserve">Adds a new #GtkMenuItem to the menu shellâs item list at the position indicated by @position.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">The position in the item list where @child is added. Positions are numbered from 0 to n-1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_current"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <type name="MenuDirectionType" c:type="GtkMenuDirectionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_selected"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="distance" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="select_item" invoker="select_item"> <doc xml:space="preserve">Selects the menu item from the menu shell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem to select</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="selection_done"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </virtual-method> <method name="activate_item" c:identifier="gtk_menu_shell_activate_item"> <doc xml:space="preserve">Activates the menu item within the menu shell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenuItem to activate</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="force_deactivate" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, force the deactivation of the menu shell after the menu item is activated</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="append" c:identifier="gtk_menu_shell_append"> <doc xml:space="preserve">Adds a new #GtkMenuItem to the end of the menu shell's item list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem to add</doc> <type name="MenuItem" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="bind_model" c:identifier="gtk_menu_shell_bind_model" version="3.6"> <doc xml:space="preserve">Establishes a binding between a #GtkMenuShell and a #GMenuModel. The contents of @shell are removed and then refilled with menu items according to @model. When @model changes, @shell is updated. Calling this function twice on @shell with different @model will cause the first binding to be replaced with a binding to the new model. If @model is %NULL then any previous binding is undone and all children are removed. @with_separators determines if toplevel items (eg: sections) have separators inserted between them. This is typically desired for menus but doesnât make sense for menubars. If @action_namespace is non-%NULL then the effect is as if all actions mentioned in the @model have their names prefixed with the namespace, plus a dot. For example, if the action âquitâ is mentioned and @action_namespace is âappâ then the effective action name is âapp.quitâ. This function uses #GtkActionable to define the action name and target values on the created menu items. If you want to use an action group other than âappâ and âwinâ, or if you want to use a #GtkMenuShell outside of a #GtkApplicationWindow, then you will need to attach your own action group to the widget hierarchy using gtk_widget_insert_action_group(). As an example, if you created a group with a âquitâ action and inserted it with the name âmygroupâ then you would use the action name âmygroup.quitâ in your #GMenuModel. For most cases you are probably better off using gtk_menu_new_from_model() or gtk_menu_bar_new_from_model() or just directly passing the #GMenuModel to gtk_application_set_app_menu() or gtk_application_set_menubar().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GMenuModel to bind to or %NULL to remove binding</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </parameter> <parameter name="action_namespace" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the namespace for actions in @model</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="with_separators" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if toplevel items in @shell should have separators between them</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="cancel" c:identifier="gtk_menu_shell_cancel" version="2.4"> <doc xml:space="preserve">Cancels the selection within the menu shell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </method> <method name="deactivate" c:identifier="gtk_menu_shell_deactivate"> <doc xml:space="preserve">Deactivates the menu shell. Typically this results in the menu shell being erased from the screen.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </method> <method name="deselect" c:identifier="gtk_menu_shell_deselect"> <doc xml:space="preserve">Deselects the currently selected item from the menu shell, if any.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </method> <method name="get_parent_shell" c:identifier="gtk_menu_shell_get_parent_shell" version="3.0"> <doc xml:space="preserve">Gets the parent menu shell. The parent menu shell of a submenu is the #GtkMenu or #GtkMenuBar from which it was opened up.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the parent #GtkMenuShell</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </method> <method name="get_selected_item" c:identifier="gtk_menu_shell_get_selected_item" version="3.0"> <doc xml:space="preserve">Gets the currently selected item.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the currently selected item</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </method> <method name="get_take_focus" c:identifier="gtk_menu_shell_get_take_focus" version="2.8"> <doc xml:space="preserve">Returns %TRUE if the menu shell will take the keyboard focus on popup.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menu shell will take the keyboard focus on popup.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> </parameters> </method> <method name="insert" c:identifier="gtk_menu_shell_insert"> <doc xml:space="preserve">Adds a new #GtkMenuItem to the menu shellâs item list at the position indicated by @position.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">The position in the item list where @child is added. Positions are numbered from 0 to n-1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="prepend" c:identifier="gtk_menu_shell_prepend"> <doc xml:space="preserve">Adds a new #GtkMenuItem to the beginning of the menu shell's item list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="select_first" c:identifier="gtk_menu_shell_select_first" version="2.2"> <doc xml:space="preserve">Select the first visible or selectable child of the menu shell; donât select tearoff items unless the only item is a tearoff item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="search_sensitive" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, search for the first selectable menu item, otherwise select nothing if the first item isnât sensitive. This should be %FALSE if the menu is being popped up initially.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="select_item" c:identifier="gtk_menu_shell_select_item"> <doc xml:space="preserve">Selects the menu item from the menu shell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem to select</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_take_focus" c:identifier="gtk_menu_shell_set_take_focus" version="2.8"> <doc xml:space="preserve">If @take_focus is %TRUE (the default) the menu shell will take the keyboard focus so that it will receive all keyboard events which is needed to enable keyboard navigation in menus. Setting @take_focus to %FALSE is useful only for special applications like virtual keyboard implementations which should not take keyboard focus. The @take_focus state of a menu or menu bar is automatically propagated to submenus whenever a submenu is popped up, so you donât have to worry about recursively setting it for your entire menu hierarchy. Only when programmatically picking a submenu and popping it up manually, the @take_focus property of the submenu needs to be set explicitly. Note that setting it to %FALSE has side-effects: If the focus is in some other app, it keeps the focus and keynav in the menu doesnât work. Consequently, keynav on the menu will only work if the focus is on some toplevel owned by the onscreen keyboard. To avoid confusing the user, menus with @take_focus set to %FALSE should not display mnemonics or accelerators, since it cannot be guaranteed that they will work. See also gdk_keyboard_grab()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </instance-parameter> <parameter name="take_focus" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the menu shell should take the keyboard focus on popup</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="take-focus" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A boolean that determines whether the menu and its submenus grab the keyboard focus. See gtk_menu_shell_set_take_focus() and gtk_menu_shell_get_take_focus().</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="MenuShellPrivate" c:type="GtkMenuShellPrivate*"/> </field> <glib:signal name="activate-current" when="last" action="1"> <doc xml:space="preserve">An action signal that activates the current menu item within the menu shell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="force_hide" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, hide the menu after activating the menu item</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="cancel" when="last" action="1"> <doc xml:space="preserve">An action signal which cancels the selection within the menu shell. Causes the #GtkMenuShell::selection-done signal to be emitted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="cycle-focus" when="last" action="1"> <doc xml:space="preserve">A keybinding signal which moves the focus in the given @direction.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the direction to cycle in</doc> <type name="DirectionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="deactivate" when="first"> <doc xml:space="preserve">This signal is emitted when a menu shell is deactivated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="insert" when="first" version="3.2"> <doc xml:space="preserve">The ::insert signal is emitted when a new #GtkMenuItem is added to a #GtkMenuShell. A separate signal is used instead of GtkContainer::add because of the need for an additional position parameter. The inverse of this signal is the GtkContainer::removed signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenuItem that is being inserted</doc> <type name="Widget"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position at which the insert occurs</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-current" when="last" action="1"> <doc xml:space="preserve">An keybinding signal which moves the current menu item in the direction specified by @direction.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the direction to move</doc> <type name="MenuDirectionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-selected" when="last" version="2.12"> <doc xml:space="preserve">The ::move-selected signal is emitted to move the selection to another item.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop the signal emission, %FALSE to continue</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="distance" transfer-ownership="none"> <doc xml:space="preserve">+1 to move to the next item, -1 to move to the previous</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="selection-done" when="first"> <doc xml:space="preserve">This signal is emitted when a selection has been completed within a menu shell.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="MenuShellAccessible" c:symbol-prefix="menu_shell_accessible" c:type="GtkMenuShellAccessible" parent="ContainerAccessible" glib:type-name="GtkMenuShellAccessible" glib:get-type="gtk_menu_shell_accessible_get_type" glib:type-struct="MenuShellAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="MenuShellAccessiblePrivate" c:type="GtkMenuShellAccessiblePrivate*"/> </field> </class> <record name="MenuShellAccessibleClass" c:type="GtkMenuShellAccessibleClass" glib:is-gtype-struct-for="MenuShellAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="MenuShellAccessiblePrivate" c:type="GtkMenuShellAccessiblePrivate" disguised="1"> </record> <record name="MenuShellClass" c:type="GtkMenuShellClass" glib:is-gtype-struct-for="MenuShell"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="submenu_placement" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="deactivate"> <callback name="deactivate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> </parameters> </callback> </field> <field name="selection_done"> <callback name="selection_done"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> </parameters> </callback> </field> <field name="move_current"> <callback name="move_current"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <type name="MenuDirectionType" c:type="GtkMenuDirectionType"/> </parameter> </parameters> </callback> </field> <field name="activate_current"> <callback name="activate_current"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> <parameter name="force_hide" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="cancel"> <callback name="cancel"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> </parameters> </callback> </field> <field name="select_item"> <callback name="select_item"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> <parameter name="menu_item" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem to select</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="insert"> <callback name="insert"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuShell</doc> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">The position in the item list where @child is added. Positions are numbered from 0 to n-1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="get_popup_delay"> <callback name="get_popup_delay"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> </parameters> </callback> </field> <field name="move_selected"> <callback name="move_selected"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="menu_shell" transfer-ownership="none"> <type name="MenuShell" c:type="GtkMenuShell*"/> </parameter> <parameter name="distance" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="MenuShellPrivate" c:type="GtkMenuShellPrivate" disguised="1"> </record> <class name="MenuToolButton" c:symbol-prefix="menu_tool_button" c:type="GtkMenuToolButton" parent="ToolButton" glib:type-name="GtkMenuToolButton" glib:get-type="gtk_menu_tool_button_get_type" glib:type-struct="MenuToolButtonClass"> <doc xml:space="preserve">A #GtkMenuToolButton is a #GtkToolItem that contains a button and a small additional button with an arrow. When clicked, the arrow button pops up a dropdown menu. Use gtk_menu_tool_button_new() to create a new #GtkMenuToolButton. # GtkMenuToolButton as GtkBuildable The GtkMenuToolButton implementation of the GtkBuildable interface supports adding a menu by specifying âmenuâ as the âtypeâ attribute of a <child> element. An example for a UI definition fragment with menus: |[ <object class="GtkMenuToolButton"> <child type="menu"> <object class="GtkMenu"/> </child> </object> ]|</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_menu_tool_button_new" version="2.6"> <doc xml:space="preserve">Creates a new #GtkMenuToolButton using @icon_widget as icon and @label as label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkMenuToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="icon_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a widget that will be used as icon widget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string that will be used as label, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_stock" c:identifier="gtk_menu_tool_button_new_from_stock" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkMenuToolButton. The new #GtkMenuToolButton will contain an icon and label from the stock item indicated by @stock_id.</doc> <doc-deprecated xml:space="preserve">Use gtk_menu_tool_button_new() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkMenuToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the name of a stock item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="show_menu"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <type name="MenuToolButton" c:type="GtkMenuToolButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_menu" c:identifier="gtk_menu_tool_button_get_menu" version="2.6"> <doc xml:space="preserve">Gets the #GtkMenu associated with #GtkMenuToolButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenu associated with #GtkMenuToolButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuToolButton</doc> <type name="MenuToolButton" c:type="GtkMenuToolButton*"/> </instance-parameter> </parameters> </method> <method name="set_arrow_tooltip_markup" c:identifier="gtk_menu_tool_button_set_arrow_tooltip_markup" version="2.12"> <doc xml:space="preserve">Sets the tooltip markup text to be used as tooltip for the arrow button which pops up the menu. See gtk_tool_item_set_tooltip_text() for setting a tooltip on the whole #GtkMenuToolButton.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuToolButton</doc> <type name="MenuToolButton" c:type="GtkMenuToolButton*"/> </instance-parameter> <parameter name="markup" transfer-ownership="none"> <doc xml:space="preserve">markup text to be used as tooltip text for buttonâs arrow button</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_arrow_tooltip_text" c:identifier="gtk_menu_tool_button_set_arrow_tooltip_text" version="2.12"> <doc xml:space="preserve">Sets the tooltip text to be used as tooltip for the arrow button which pops up the menu. See gtk_tool_item_set_tooltip_text() for setting a tooltip on the whole #GtkMenuToolButton.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuToolButton</doc> <type name="MenuToolButton" c:type="GtkMenuToolButton*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text to be used as tooltip text for buttonâs arrow button</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_menu" c:identifier="gtk_menu_tool_button_set_menu" version="2.6"> <doc xml:space="preserve">Sets the #GtkMenu that is popped up when the user clicks on the arrow. If @menu is NULL, the arrow button becomes insensitive.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenuToolButton</doc> <type name="MenuToolButton" c:type="GtkMenuToolButton*"/> </instance-parameter> <parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenu associated with #GtkMenuToolButton</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <property name="menu" writable="1" transfer-ownership="none"> <type name="Menu"/> </property> <field name="parent"> <type name="ToolButton" c:type="GtkToolButton"/> </field> <field name="priv" readable="0" private="1"> <type name="MenuToolButtonPrivate" c:type="GtkMenuToolButtonPrivate*"/> </field> <glib:signal name="show-menu" when="first"> <doc xml:space="preserve">The ::show-menu signal is emitted before the menu is shown. It can be used to populate the menu on demand, using gtk_menu_tool_button_set_menu(). Note that even if you populate the menu dynamically in this way, you must set an empty menu on the #GtkMenuToolButton beforehand, since the arrow is made insensitive if the menu is not set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="MenuToolButtonClass" c:type="GtkMenuToolButtonClass" glib:is-gtype-struct-for="MenuToolButton"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ToolButtonClass" c:type="GtkToolButtonClass"/> </field> <field name="show_menu"> <callback name="show_menu"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <type name="MenuToolButton" c:type="GtkMenuToolButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="MenuToolButtonPrivate" c:type="GtkMenuToolButtonPrivate" disguised="1"> </record> <class name="MessageDialog" c:symbol-prefix="message_dialog" c:type="GtkMessageDialog" parent="Dialog" glib:type-name="GtkMessageDialog" glib:get-type="gtk_message_dialog_get_type" glib:type-struct="MessageDialogClass"> <doc xml:space="preserve">#GtkMessageDialog presents a dialog with some message text. Itâs simply a convenience widget; you could construct the equivalent of #GtkMessageDialog from #GtkDialog without too much effort, but #GtkMessageDialog saves typing. One difference from #GtkDialog is that #GtkMessageDialog sets the #GtkWindow:skip-taskbar-hint property to %TRUE, so that the dialog is hidden from the taskbar by default. The easiest way to do a modal message dialog is to use gtk_dialog_run(), though you can also pass in the %GTK_DIALOG_MODAL flag, gtk_dialog_run() automatically makes the dialog modal and waits for the user to respond to it. gtk_dialog_run() returns when any dialog button is clicked. An example for using a modal dialog: |[<!-- language="C" --> GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT; dialog = gtk_message_dialog_new (parent_window, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Error reading â%sâ: %s", filename, g_strerror (errno)); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); ]| You might do a non-modal #GtkMessageDialog as follows: An example for a non-modal dialog: |[<!-- language="C" --> GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT; dialog = gtk_message_dialog_new (parent_window, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Error reading â%sâ: %s", filename, g_strerror (errno)); // Destroy the dialog when the user responds to it // (e.g. clicks a button) g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); ]| # GtkMessageDialog as GtkBuildable The GtkMessageDialog implementation of the GtkBuildable interface exposes the message area as an internal child with the name âmessage_areaâ.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_message_dialog_new" introspectable="0"> <doc xml:space="preserve">Creates a new message dialog, which 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 #GtkResponseType. See #GtkDialog for more details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkMessageDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">transient parent, or %NULL for none</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags</doc> <type name="DialogFlags" c:type="GtkDialogFlags"/> </parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">type of message</doc> <type name="MessageType" c:type="GtkMessageType"/> </parameter> <parameter name="buttons" transfer-ownership="none"> <doc xml:space="preserve">set of buttons to use</doc> <type name="ButtonsType" c:type="GtkButtonsType"/> </parameter> <parameter name="message_format" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">printf()-style format string, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">arguments for @message_format</doc> <varargs/> </parameter> </parameters> </constructor> <constructor name="new_with_markup" c:identifier="gtk_message_dialog_new_with_markup" version="2.4" introspectable="0"> <doc xml:space="preserve">Creates a new message dialog, which is a simple dialog with some text that is marked up with the [Pango text markup language][PangoMarkupFormat]. When the user clicks a button a âresponseâ signal is emitted with response IDs from #GtkResponseType. See #GtkDialog 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 gtk_message_dialog_set_markup() instead, since you canât pass the markup string either as the format (it might contain â%â characters) or as a string argument. |[<!-- language="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); ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkMessageDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">transient parent, or %NULL for none</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags</doc> <type name="DialogFlags" c:type="GtkDialogFlags"/> </parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">type of message</doc> <type name="MessageType" c:type="GtkMessageType"/> </parameter> <parameter name="buttons" transfer-ownership="none"> <doc xml:space="preserve">set of buttons to use</doc> <type name="ButtonsType" c:type="GtkButtonsType"/> </parameter> <parameter name="message_format" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">printf()-style format string, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">arguments for @message_format</doc> <varargs/> </parameter> </parameters> </constructor> <method name="format_secondary_markup" c:identifier="gtk_message_dialog_format_secondary_markup" version="2.6" introspectable="0"> <doc xml:space="preserve">Sets the secondary text of the message dialog to be @message_format (with printf()-style), which is marked up with the [Pango text markup language][PangoMarkupFormat]. Due to an oversight, this function does not escape special XML characters like gtk_message_dialog_new_with_markup() does. Thus, if the arguments may contain special XML characters, you should use g_markup_printf_escaped() to escape it. |[<!-- language="C" --> gchar *msg; msg = g_markup_printf_escaped (message_format, ...); gtk_message_dialog_format_secondary_markup (message_dialog, "%s", msg); g_free (msg); ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="message_dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMessageDialog</doc> <type name="MessageDialog" c:type="GtkMessageDialog*"/> </instance-parameter> <parameter name="message_format" transfer-ownership="none"> <doc xml:space="preserve">printf()-style markup string (see [Pango markup format][PangoMarkupFormat]), or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">arguments for @message_format</doc> <varargs/> </parameter> </parameters> </method> <method name="format_secondary_text" c:identifier="gtk_message_dialog_format_secondary_text" version="2.6" introspectable="0"> <doc xml:space="preserve">Sets the secondary text of the message dialog to be @message_format (with printf()-style).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="message_dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMessageDialog</doc> <type name="MessageDialog" c:type="GtkMessageDialog*"/> </instance-parameter> <parameter name="message_format" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">printf()-style format string, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">arguments for @message_format</doc> <varargs/> </parameter> </parameters> </method> <method name="get_image" c:identifier="gtk_message_dialog_get_image" version="2.14" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Gets the dialogâs image.</doc> <doc-deprecated xml:space="preserve">Use #GtkDialog for dialogs with images</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the dialogâs image</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMessageDialog</doc> <type name="MessageDialog" c:type="GtkMessageDialog*"/> </instance-parameter> </parameters> </method> <method name="get_message_area" c:identifier="gtk_message_dialog_get_message_area" version="2.22"> <doc xml:space="preserve">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 gtk_dialog_get_content_area() for the corresponding function in the parent #GtkDialog.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkBox corresponding to the âmessage areaâ in the @message_dialog.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="message_dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMessageDialog</doc> <type name="MessageDialog" c:type="GtkMessageDialog*"/> </instance-parameter> </parameters> </method> <method name="set_image" c:identifier="gtk_message_dialog_set_image" version="2.10" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Sets the dialogâs image to @image.</doc> <doc-deprecated xml:space="preserve">Use #GtkDialog to create dialogs with images</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMessageDialog</doc> <type name="MessageDialog" c:type="GtkMessageDialog*"/> </instance-parameter> <parameter name="image" transfer-ownership="none"> <doc xml:space="preserve">the image</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_markup" c:identifier="gtk_message_dialog_set_markup" version="2.4"> <doc xml:space="preserve">Sets the text of the message dialog to be @str, which is marked up with the [Pango text markup language][PangoMarkupFormat].</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="message_dialog" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMessageDialog</doc> <type name="MessageDialog" c:type="GtkMessageDialog*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">markup string (see [Pango markup format][PangoMarkupFormat])</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="buttons" readable="0" writable="1" construct-only="1" transfer-ownership="none"> <type name="ButtonsType"/> </property> <property name="image" version="2.10" deprecated="1" deprecated-version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The image for this dialog.</doc> <doc-deprecated xml:space="preserve">Use #GtkDialog to create dialogs with images</doc-deprecated> <type name="Widget"/> </property> <property name="message-area" version="2.22" transfer-ownership="none"> <doc xml:space="preserve">The #GtkBox that corresponds to the message area of this dialog. See gtk_message_dialog_get_message_area() for a detailed description of this area.</doc> <type name="Widget"/> </property> <property name="message-type" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The type of the message.</doc> <type name="MessageType"/> </property> <property name="secondary-text" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The secondary text of the message dialog.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="secondary-use-markup" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the secondary text of the dialog includes Pango markup. See pango_parse_markup().</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="text" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The primary text of the message dialog. If the dialog has a secondary text, this will appear as the title.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="use-markup" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the primary text of the dialog includes Pango markup. See pango_parse_markup().</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv" readable="0" private="1"> <type name="MessageDialogPrivate" c:type="GtkMessageDialogPrivate*"/> </field> </class> <record name="MessageDialogClass" c:type="GtkMessageDialogClass" glib:is-gtype-struct-for="MessageDialog"> <field name="parent_class"> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="MessageDialogPrivate" c:type="GtkMessageDialogPrivate" disguised="1"> </record> <enumeration name="MessageType" glib:type-name="GtkMessageType" glib:get-type="gtk_message_type_get_type" c:type="GtkMessageType"> <doc xml:space="preserve">The type of message being displayed in the dialog.</doc> <member name="info" value="0" c:identifier="GTK_MESSAGE_INFO" glib:nick="info"> <doc xml:space="preserve">Informational message</doc> </member> <member name="warning" value="1" c:identifier="GTK_MESSAGE_WARNING" glib:nick="warning"> <doc xml:space="preserve">Non-fatal warning message</doc> </member> <member name="question" value="2" c:identifier="GTK_MESSAGE_QUESTION" glib:nick="question"> <doc xml:space="preserve">Question requiring a choice</doc> </member> <member name="error" value="3" c:identifier="GTK_MESSAGE_ERROR" glib:nick="error"> <doc xml:space="preserve">Fatal error message</doc> </member> <member name="other" value="4" c:identifier="GTK_MESSAGE_OTHER" glib:nick="other"> <doc xml:space="preserve">None of the above</doc> </member> </enumeration> <class name="Misc" c:symbol-prefix="misc" c:type="GtkMisc" parent="Widget" abstract="1" glib:type-name="GtkMisc" glib:get-type="gtk_misc_get_type" glib:type-struct="MiscClass"> <doc xml:space="preserve">The #GtkMisc widget is an abstract widget which is not useful itself, but is used to derive subclasses which have alignment and padding attributes. The horizontal and vertical padding attributes allows extra space to be added around the widget. The horizontal and vertical alignment attributes enable the widget to be positioned within its allocated area. Note that if the widget is added to a container in such a way that it expands automatically to fill its allocated area, the alignment settings will not alter the widget's position. Note that the desired effect can in most cases be achieved by using the #GtkWidget:halign, #GtkWidget:valign and #GtkWidget:margin properties on the child widget, so GtkMisc should not be used in new code. To reflect this fact, all #GtkMisc API has been deprecated.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <method name="get_alignment" c:identifier="gtk_misc_get_alignment" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the X and Y alignment of the widget within its allocation. See gtk_misc_set_alignment().</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget alignment and margin properties.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="misc" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMisc</doc> <type name="Misc" c:type="GtkMisc*"/> </instance-parameter> <parameter name="xalign" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X alignment of @misc, or %NULL</doc> <type name="gfloat" c:type="gfloat*"/> </parameter> <parameter name="yalign" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store Y alignment of @misc, or %NULL</doc> <type name="gfloat" c:type="gfloat*"/> </parameter> </parameters> </method> <method name="get_padding" c:identifier="gtk_misc_get_padding" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the padding in the X and Y directions of the widget. See gtk_misc_set_padding().</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget alignment and margin properties.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="misc" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMisc</doc> <type name="Misc" c:type="GtkMisc*"/> </instance-parameter> <parameter name="xpad" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store padding in the X direction, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="ypad" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store padding in the Y direction, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="set_alignment" c:identifier="gtk_misc_set_alignment" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the alignment of the widget.</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget's alignment (#GtkWidget:halign and #GtkWidget:valign) and margin properties or #GtkLabel's #GtkLabel:xalign and #GtkLabel:yalign properties.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="misc" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMisc.</doc> <type name="Misc" c:type="GtkMisc*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">the horizontal alignment, from 0 (left) to 1 (right).</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">the vertical alignment, from 0 (top) to 1 (bottom).</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="set_padding" c:identifier="gtk_misc_set_padding" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the amount of space to add around the widget.</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget alignment and margin properties.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="misc" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMisc.</doc> <type name="Misc" c:type="GtkMisc*"/> </instance-parameter> <parameter name="xpad" transfer-ownership="none"> <doc xml:space="preserve">the amount of space to add on the left and right of the widget, in pixels.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="ypad" transfer-ownership="none"> <doc xml:space="preserve">the amount of space to add on the top and bottom of the widget, in pixels.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="xalign" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The horizontal alignment. A value of 0.0 means left alignment (or right on RTL locales); a value of 1.0 means right alignment (or left on RTL locales).</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_halign() instead. If you are using #GtkLabel, use #GtkLabel:xalign instead.</doc-deprecated> <type name="gfloat" c:type="gfloat"/> </property> <property name="xpad" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The amount of space to add on the left and right of the widget, in pixels.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_start() and gtk_widget_set_margin_end() instead</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="yalign" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The vertical alignment. A value of 0.0 means top alignment; a value of 1.0 means bottom alignment.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_valign() instead. If you are using #GtkLabel, use #GtkLabel:yalign instead.</doc-deprecated> <type name="gfloat" c:type="gfloat"/> </property> <property name="ypad" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The amount of space to add on the top and bottom of the widget, in pixels.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_top() and gtk_widget_set_margin_bottom() instead</doc-deprecated> <type name="gint" c:type="gint"/> </property> <field name="widget"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="MiscPrivate" c:type="GtkMiscPrivate*"/> </field> </class> <record name="MiscClass" c:type="GtkMiscClass" glib:is-gtype-struct-for="Misc"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="MiscPrivate" c:type="GtkMiscPrivate" disguised="1"> </record> <class name="ModelButton" c:symbol-prefix="model_button" c:type="GtkModelButton" parent="Button" glib:type-name="GtkModelButton" glib:get-type="gtk_model_button_get_type"> <doc xml:space="preserve">GtkModelButton is a button class that can use a #GAction as its model. In contrast to #GtkToggleButton or #GtkRadioButton, which can also be backed by a #GAction via the #GtkActionable:action-name property, GtkModelButton will adapt its appearance according to the kind of action it is backed by, and appear either as a plain, check or radio button. Model buttons are used when popovers from a menu model with gtk_popover_new_from_model(); they can also be used manually in a #GtkPopoverMenu. When the action is specified via the #GtkActionable:action-name and #GtkActionable:action-target properties, the role of the button (i.e. whether it is a plain, check or radio button) is determined by the type of the action and doesn't have to be explicitly specified with the #GtkModelButton:role property. The content of the button is specified by the #GtkModelButton:text and #GtkModelButton:icon properties. The appearance of model buttons can be influenced with the #GtkModelButton:centered and #GtkModelButton:iconic properties. Model buttons have built-in support for submenus in #GtkPopoverMenu. To make a GtkModelButton that opens a submenu when activated, set the #GtkModelButton:menu-name property. To make a button that goes back to the parent menu, you should set the #GtkModelButton:inverted property to place the submenu indicator at the opposite side. # Example |[ <object class="GtkPopoverMenu"> <child> <object class="GtkBox"> <property name="visible">True</property> <property name="margin">10</property> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">view.cut</property> <property name="text" translatable="yes">Cut</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">view.copy</property> <property name="text" translatable="yes">Copy</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">view.paste</property> <property name="text" translatable="yes">Paste</property> </object> </child> </object> </child> </object> ]| # CSS nodes |[<!-- language="plain" --> modelbutton âââ <child> â°ââ check ]| |[<!-- language="plain" --> modelbutton âââ <child> â°ââ radio ]| |[<!-- language="plain" --> modelbutton âââ <child> â°ââ arrow ]| GtkModelButton has a main CSS node with name modelbutton, and a subnode, which will have the name check, radio or arrow, depending on the role of the button and whether it has a menu name set. The subnode is positioned before or after the content nodes and gets the .left or .right style class, depending on where it is located. |[<!-- language="plain" --> button.model âââ <child> â°ââ check ]| Iconic model buttons (see #GtkModelButton:iconic) change the name of their main node to button and add a .model style class to it. The indicator subnode is invisible in this case.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_model_button_new" version="3.16"> <doc xml:space="preserve">Creates a new GtkModelButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the newly created #GtkModelButton widget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <property name="active" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The state of the button. This is reflecting the state of the associated #GAction.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="centered" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to render the button contents centered instead of left-aligned. This property should be set for title-like items.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="icon" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A #GIcon that will be used if iconic appearance for the button is desired.</doc> <type name="Gio.Icon"/> </property> <property name="iconic" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="inverted" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to show the submenu indicator at the opposite side than normal. This property should be set for model buttons that 'go back' to a parent menu.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="menu-name" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="role" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="ButtonRole"/> </property> <property name="text" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The label for the button.</doc> <type name="utf8" c:type="gchar*"/> </property> </class> <callback name="ModuleDisplayInitFunc" c:type="GtkModuleDisplayInitFunc" version="2.2"> <doc xml:space="preserve">A multihead-aware GTK+ module may have a gtk_module_display_init() function with this prototype. GTK+ calls this function for each opened display.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="display" transfer-ownership="none"> <doc xml:space="preserve">an open #GdkDisplay</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> </parameters> </callback> <callback name="ModuleInitFunc" c:type="GtkModuleInitFunc"> <doc xml:space="preserve">Each GTK+ module must have a function gtk_module_init() with this prototype. This function is called after loading the module.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="argc" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">GTK+ always passes %NULL for this argument</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="argv" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">GTK+ always passes %NULL for this argument</doc> <array length="0" zero-terminated="0" c:type="gchar***"> <type name="utf8" c:type="gchar**"/> </array> </parameter> </parameters> </callback> <class name="MountOperation" c:symbol-prefix="mount_operation" c:type="GtkMountOperation" parent="Gio.MountOperation" glib:type-name="GtkMountOperation" glib:get-type="gtk_mount_operation_get_type" glib:type-struct="MountOperationClass"> <doc xml:space="preserve">This should not be accessed directly. Use the accessor functions below.</doc> <constructor name="new" c:identifier="gtk_mount_operation_new" version="2.14"> <doc xml:space="preserve">Creates a new #GtkMountOperation</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkMountOperation</doc> <type name="Gio.MountOperation" c:type="GMountOperation*"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">transient parent of the window, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </constructor> <method name="get_parent" c:identifier="gtk_mount_operation_get_parent" version="2.14"> <doc xml:space="preserve">Gets the transient parent used by the #GtkMountOperation</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the transient parent for windows shown by @op</doc> <type name="Window" c:type="GtkWindow*"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMountOperation</doc> <type name="MountOperation" c:type="GtkMountOperation*"/> </instance-parameter> </parameters> </method> <method name="get_screen" c:identifier="gtk_mount_operation_get_screen" version="2.14"> <doc xml:space="preserve">Gets the screen on which windows of the #GtkMountOperation will be shown.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the screen on which windows of @op are shown</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMountOperation</doc> <type name="MountOperation" c:type="GtkMountOperation*"/> </instance-parameter> </parameters> </method> <method name="is_showing" c:identifier="gtk_mount_operation_is_showing" version="2.14"> <doc xml:space="preserve">Returns whether the #GtkMountOperation is currently displaying a window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @op is currently displaying a window</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMountOperation</doc> <type name="MountOperation" c:type="GtkMountOperation*"/> </instance-parameter> </parameters> </method> <method name="set_parent" c:identifier="gtk_mount_operation_set_parent" version="2.14"> <doc xml:space="preserve">Sets the transient parent for windows shown by the #GtkMountOperation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMountOperation</doc> <type name="MountOperation" c:type="GtkMountOperation*"/> </instance-parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">transient parent of the window, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <method name="set_screen" c:identifier="gtk_mount_operation_set_screen" version="2.14"> <doc xml:space="preserve">Sets the screen to show windows of the #GtkMountOperation on.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMountOperation</doc> <type name="MountOperation" c:type="GtkMountOperation*"/> </instance-parameter> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </method> <property name="is-showing" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="parent" writable="1" transfer-ownership="none"> <type name="Window"/> </property> <property name="screen" writable="1" transfer-ownership="none"> <type name="Gdk.Screen"/> </property> <field name="parent_instance"> <type name="Gio.MountOperation" c:type="GMountOperation"/> </field> <field name="priv"> <type name="MountOperationPrivate" c:type="GtkMountOperationPrivate*"/> </field> </class> <record name="MountOperationClass" c:type="GtkMountOperationClass" glib:is-gtype-struct-for="MountOperation"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="Gio.MountOperationClass" c:type="GMountOperationClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="MountOperationPrivate" c:type="GtkMountOperationPrivate" disguised="1"> </record> <enumeration name="MovementStep" glib:type-name="GtkMovementStep" glib:get-type="gtk_movement_step_get_type" c:type="GtkMovementStep"> <member name="logical_positions" value="0" c:identifier="GTK_MOVEMENT_LOGICAL_POSITIONS" glib:nick="logical-positions"> <doc xml:space="preserve">Move forward or back by graphemes</doc> </member> <member name="visual_positions" value="1" c:identifier="GTK_MOVEMENT_VISUAL_POSITIONS" glib:nick="visual-positions"> <doc xml:space="preserve">Move left or right by graphemes</doc> </member> <member name="words" value="2" c:identifier="GTK_MOVEMENT_WORDS" glib:nick="words"> <doc xml:space="preserve">Move forward or back by words</doc> </member> <member name="display_lines" value="3" c:identifier="GTK_MOVEMENT_DISPLAY_LINES" glib:nick="display-lines"> <doc xml:space="preserve">Move up or down lines (wrapped lines)</doc> </member> <member name="display_line_ends" value="4" c:identifier="GTK_MOVEMENT_DISPLAY_LINE_ENDS" glib:nick="display-line-ends"> <doc xml:space="preserve">Move to either end of a line</doc> </member> <member name="paragraphs" value="5" c:identifier="GTK_MOVEMENT_PARAGRAPHS" glib:nick="paragraphs"> <doc xml:space="preserve">Move up or down paragraphs (newline-ended lines)</doc> </member> <member name="paragraph_ends" value="6" c:identifier="GTK_MOVEMENT_PARAGRAPH_ENDS" glib:nick="paragraph-ends"> <doc xml:space="preserve">Move to either end of a paragraph</doc> </member> <member name="pages" value="7" c:identifier="GTK_MOVEMENT_PAGES" glib:nick="pages"> <doc xml:space="preserve">Move by pages</doc> </member> <member name="buffer_ends" value="8" c:identifier="GTK_MOVEMENT_BUFFER_ENDS" glib:nick="buffer-ends"> <doc xml:space="preserve">Move to ends of the buffer</doc> </member> <member name="horizontal_pages" value="9" c:identifier="GTK_MOVEMENT_HORIZONTAL_PAGES" glib:nick="horizontal-pages"> <doc xml:space="preserve">Move horizontally by pages</doc> </member> </enumeration> <class name="NativeDialog" c:symbol-prefix="native_dialog" c:type="GtkNativeDialog" parent="GObject.Object" abstract="1" glib:type-name="GtkNativeDialog" glib:get-type="gtk_native_dialog_get_type" glib:type-struct="NativeDialogClass"> <doc xml:space="preserve">Native dialogs are platform dialogs that don't use #GtkDialog or #GtkWindow. They are used in order to integrate better with a platform, by looking the same as other native applications and supporting platform specific features. The #GtkDialog functions cannot be used on such objects, but we need a similar API in order to drive them. The #GtkNativeDialog object is an API that allows you to do this. It allows you to set various common properties on the dialog, as well as show and hide it and get a #GtkNativeDialog::response signal when the user finished with the dialog. There is also a gtk_native_dialog_run() helper that makes it easy to run any native dialog in a modal way with a recursive mainloop, similar to gtk_dialog_run().</doc> <virtual-method name="hide" invoker="hide" version="3.20"> <doc xml:space="preserve">Hides the dialog if it is visilbe, aborting any interaction. Once this is called the #GtkNativeDialog::response signal will not be emitted until after the next call to gtk_native_dialog_show(). If the dialog is not visible this does nothing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="response"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> <parameter name="response_id" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="show" invoker="show" version="3.20"> <doc xml:space="preserve">Shows the dialog on the display, allowing the user to interact with it. When the user accepts the state of the dialog the dialog will be automatically hidden and the #GtkNativeDialog::response signal will be emitted. Multiple calls while the dialog is visible will be ignored.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </virtual-method> <method name="destroy" c:identifier="gtk_native_dialog_destroy" version="3.20"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </method> <method name="get_modal" c:identifier="gtk_native_dialog_get_modal" version="3.20"> <doc xml:space="preserve">Returns whether the dialog is modal. See gtk_native_dialog_set_modal().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the dialog is set to be modal</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_native_dialog_get_title" version="3.20"> <doc xml:space="preserve">Gets the title of the #GtkNativeDialog.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="const char*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </method> <method name="get_transient_for" c:identifier="gtk_native_dialog_get_transient_for" version="3.20"> <doc xml:space="preserve">Fetches the transient parent for this window. See gtk_native_dialog_set_transient_for().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the transient parent for this window, or %NULL if no transient parent has been set.</doc> <type name="Window" c:type="GtkWindow*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </method> <method name="get_visible" c:identifier="gtk_native_dialog_get_visible" version="3.20"> <doc xml:space="preserve">Determines whether the dialog is visible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the dialog is visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </method> <method name="hide" c:identifier="gtk_native_dialog_hide" version="3.20"> <doc xml:space="preserve">Hides the dialog if it is visilbe, aborting any interaction. Once this is called the #GtkNativeDialog::response signal will not be emitted until after the next call to gtk_native_dialog_show(). If the dialog is not visible this does nothing.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </method> <method name="run" c:identifier="gtk_native_dialog_run" version="3.20"> <doc xml:space="preserve">Blocks in a recursive main loop until @self emits the #GtkNativeDialog::response signal. It then returns the response ID from the ::response signal emission. Before entering the recursive main loop, gtk_native_dialog_run() calls gtk_native_dialog_show() on the dialog for you. After gtk_native_dialog_run() returns, then dialog will be hidden. Typical usage of this function might be: |[<!-- language="C" --> gint result = gtk_native_dialog_run (GTK_NATIVE_DIALOG (dialog)); switch (result) { case GTK_RESPONSE_ACCEPT: do_application_specific_something (); break; default: do_nothing_since_dialog_was_cancelled (); break; } g_object_unref (dialog); ]| Note that even though the recursive main loop gives the effect of a modal dialog (it prevents the user from interacting with other windows in the same window group while the dialog is run), callbacks such as timeouts, IO channel watches, DND drops, etc, will be triggered during a gtk_nautilus_dialog_run() call.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">response ID</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </method> <method name="set_modal" c:identifier="gtk_native_dialog_set_modal" version="3.20"> <doc xml:space="preserve">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 gtk_native_dialog_set_transient_for() to make the dialog transient for the parent; most [window managers][gtk-X11-arch] will then disallow lowering the dialog below the parent.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> <parameter name="modal" transfer-ownership="none"> <doc xml:space="preserve">whether the window is modal</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_native_dialog_set_title" version="3.20"> <doc xml:space="preserve">Sets the title of the #GtkNativeDialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">title of the dialog</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="set_transient_for" c:identifier="gtk_native_dialog_set_transient_for" version="3.20"> <doc xml:space="preserve">Dialog windows should be set transient for the main application window they were spawned from. This allows [window managers][gtk-X11-arch] 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">parent window, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <method name="show" c:identifier="gtk_native_dialog_show" version="3.20"> <doc xml:space="preserve">Shows the dialog on the display, allowing the user to interact with it. When the user accepts the state of the dialog the dialog will be automatically hidden and the #GtkNativeDialog::response signal will be emitted. Multiple calls while the dialog is visible will be ignored.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </instance-parameter> </parameters> </method> <property name="modal" version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the window should be modal with respect to its transient parent.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="title" version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The title of the dialog window</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="transient-for" version="3.20" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The transient parent of the dialog, or %NULL for none.</doc> <type name="Window"/> </property> <property name="visible" version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the window is currenlty visible.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <glib:signal name="response" when="last" version="3.20"> <doc xml:space="preserve">Emitted when the user responds to the dialog. When this is called the dialog has been hidden. If you call gtk_native_dialog_hide() before the user responds to the dialog this signal will not be emitted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="response_id" transfer-ownership="none"> <doc xml:space="preserve">the response ID</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> </class> <record name="NativeDialogClass" c:type="GtkNativeDialogClass" glib:is-gtype-struct-for="NativeDialog"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="response"> <callback name="response"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </parameter> <parameter name="response_id" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="show"> <callback name="show"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </parameter> </parameters> </callback> </field> <field name="hide"> <callback name="hide"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNativeDialog</doc> <type name="NativeDialog" c:type="GtkNativeDialog*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="Notebook" c:symbol-prefix="notebook" c:type="GtkNotebook" parent="Container" glib:type-name="GtkNotebook" glib:get-type="gtk_notebook_get_type" glib:type-struct="NotebookClass"> <doc xml:space="preserve">The #GtkNotebook widget is a #GtkContainer whose children are pages that can be switched between using tab labels along one edge. There are many configuration options for GtkNotebook. Among other things, you can choose on which edge the tabs appear (see gtk_notebook_set_tab_pos()), whether, if there are too many tabs to fit the notebook should be made bigger or scrolling arrows added (see gtk_notebook_set_scrollable()), and whether there will be a popup menu allowing the users to switch pages. (see gtk_notebook_popup_enable(), gtk_notebook_popup_disable()) # GtkNotebook as GtkBuildable The GtkNotebook implementation of the #GtkBuildable interface supports placing children into tabs by specifying âtabâ as the âtypeâ attribute of a <child> element. Note that the content of the tab must be created before the tab can be filled. A tab child can be specified without specifying a <child> type attribute. To add a child widget in the notebooks action area, specify "action-start" or âaction-endâ as the âtypeâ attribute of the <child> element. An example of a UI definition fragment with GtkNotebook: |[ <object class="GtkNotebook"> <child> <object class="GtkLabel" id="notebook-content"> <property name="label">Content</property> </object> </child> <child type="tab"> <object class="GtkLabel" id="notebook-tab"> <property name="label">Tab</property> </object> </child> </object> ]| # CSS nodes |[<!-- language="plain" --> notebook âââ header.top â âââ [<action widget>] â âââ tabs â â âââ [arrow] â â âââ tab â â â â°ââ <tab label> â â â â â âââ tab[.reorderable-page] â â â â°ââ <tab label> â â â°ââ [arrow] â â°ââ [<action widget>] â â°ââ stack âââ <child> â â°ââ <child> ]| GtkNotebook has a main CSS node with name notebook, a subnode with name header and below that a subnode with name tabs which contains one subnode per tab with name tab. If action widgets are present, their CSS nodes are placed next to the tabs node. If the notebook is scrollable, CSS nodes with name arrow are placed as first and last child of the tabs node. The main node gets the .frame style class when the notebook has a border (see gtk_notebook_set_show_border()). The header node gets one of the style class .top, .bottom, .left or .right, depending on where the tabs are placed. For reorderable pages, the tab node gets the .reorderable-page class. A tab node gets the .dnd style class while it is moved with drag-and-drop. The nodes are always arranged from left-to-right, regarldess of text direction.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_notebook_new"> <doc xml:space="preserve">Creates a new #GtkNotebook widget with no pages.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the newly created #GtkNotebook</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="change_current_page"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="offset" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="create_window" introspectable="0"> <return-value> <type name="Notebook" c:type="GtkNotebook*"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="focus_tab"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <type name="NotebookTab" c:type="GtkNotebookTab"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_page"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="menu_label" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_focus_out"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="page_added"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="page_removed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="page_reordered"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="reorder_tab"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> <parameter name="move_to_last" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="select_page"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="move_focus" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="switch_page"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="page" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <method name="append_page" c:identifier="gtk_notebook_append_page"> <doc xml:space="preserve">Appends a page to @notebook.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting from 0) of the appended page in the notebook, or -1 if function fails</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to use as the contents of the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkWidget to be used as the label for the page, or %NULL to use the default label, âpage Nâ</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="append_page_menu" c:identifier="gtk_notebook_append_page_menu"> <doc xml:space="preserve">Appends a page to @notebook, specifying the widget to use as the label in the popup menu.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting from 0) of the appended page in the notebook, or -1 if function fails</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to use as the contents of the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkWidget to be used as the label for the page, or %NULL to use the default label, âpage Nâ</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="menu_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">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.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="detach_tab" c:identifier="gtk_notebook_detach_tab" version="3.16"> <doc xml:space="preserve">Removes the child from the notebook. This function is very similar to gtk_container_remove(), but additionally informs the notebook that the removal is happening as part of a tab DND operation, which should not be cancelled.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_action_widget" c:identifier="gtk_notebook_get_action_widget" version="2.20"> <doc xml:space="preserve">Gets one of the action widgets. See gtk_notebook_set_action_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The action widget with the given @pack_type or %NULL when this action widget has not been set</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="pack_type" transfer-ownership="none"> <doc xml:space="preserve">pack type of the action widget to receive</doc> <type name="PackType" c:type="GtkPackType"/> </parameter> </parameters> </method> <method name="get_current_page" c:identifier="gtk_notebook_get_current_page"> <doc xml:space="preserve">Returns the page number of the current page.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting from 0) of the current page in the notebook. If the notebook has no pages, then -1 will be returned.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="get_group_name" c:identifier="gtk_notebook_get_group_name" version="2.24"> <doc xml:space="preserve">Gets the current group name for @notebook.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the group name, or %NULL if none is set</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="get_menu_label" c:identifier="gtk_notebook_get_menu_label"> <doc xml:space="preserve">Retrieves the menu label widget of the page containing @child.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the menu label, or %NULL if the notebook page does not have a menu label other than the default (the tab label).</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a widget contained in a page of @notebook</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_menu_label_text" c:identifier="gtk_notebook_get_menu_label_text"> <doc xml:space="preserve">Retrieves the text of the menu label for the page containing @child.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child widget of a page of the notebook.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_n_pages" c:identifier="gtk_notebook_get_n_pages" version="2.2"> <doc xml:space="preserve">Gets the number of pages in a notebook.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of pages in the notebook</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="get_nth_page" c:identifier="gtk_notebook_get_nth_page"> <doc xml:space="preserve">Returns the child widget contained in page number @page_num.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the child widget, or %NULL if @page_num is out of bounds</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">the index of a page in the notebook, or -1 to get the last page</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_scrollable" c:identifier="gtk_notebook_get_scrollable"> <doc xml:space="preserve">Returns whether the tab label area has arrows for scrolling. See gtk_notebook_set_scrollable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if arrows for scrolling are present</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="get_show_border" c:identifier="gtk_notebook_get_show_border"> <doc xml:space="preserve">Returns whether a bevel will be drawn around the notebook pages. See gtk_notebook_set_show_border().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the bevel is drawn</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="get_show_tabs" c:identifier="gtk_notebook_get_show_tabs"> <doc xml:space="preserve">Returns whether the tabs of the notebook are shown. See gtk_notebook_set_show_tabs().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the tabs are shown</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="get_tab_detachable" c:identifier="gtk_notebook_get_tab_detachable" version="2.10"> <doc xml:space="preserve">Returns whether the tab contents can be detached from @notebook.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the tab is detachable.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_tab_hborder" c:identifier="gtk_notebook_get_tab_hborder" version="2.22" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Returns the horizontal width of a tab border.</doc> <doc-deprecated xml:space="preserve">this function returns zero</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">horizontal width of a tab border</doc> <type name="guint16" c:type="guint16"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="get_tab_label" c:identifier="gtk_notebook_get_tab_label"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the tab label</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_tab_label_text" c:identifier="gtk_notebook_get_tab_label_text"> <doc xml:space="preserve">Retrieves the text of the tab label for the page containing @child.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a widget contained in a page of @notebook</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_tab_pos" c:identifier="gtk_notebook_get_tab_pos"> <doc xml:space="preserve">Gets the edge at which the tabs for switching pages in the notebook are drawn.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the edge at which the tabs are drawn</doc> <type name="PositionType" c:type="GtkPositionType"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="get_tab_reorderable" c:identifier="gtk_notebook_get_tab_reorderable" version="2.10"> <doc xml:space="preserve">Gets whether the tab can be reordered via drag and drop or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the tab is reorderable.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_tab_vborder" c:identifier="gtk_notebook_get_tab_vborder" version="2.22" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Returns the vertical width of a tab border.</doc> <doc-deprecated xml:space="preserve">this function returns zero</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">vertical width of a tab border</doc> <type name="guint16" c:type="guint16"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="insert_page" c:identifier="gtk_notebook_insert_page"> <doc xml:space="preserve">Insert a page into @notebook at the given position.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting from 0) of the inserted page in the notebook, or -1 if function fails</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to use as the contents of the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkWidget to be used as the label for the page, or %NULL to use the default label, âpage Nâ</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the index (starting at 0) at which to insert the page, or -1 to append the page after all other pages</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="insert_page_menu" c:identifier="gtk_notebook_insert_page_menu"> <doc xml:space="preserve">Insert a page into @notebook at the given position, specifying the widget to use as the label in the popup menu.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting from 0) of the inserted page in the notebook</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to use as the contents of the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkWidget to be used as the label for the page, or %NULL to use the default label, âpage Nâ</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="menu_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">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.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the index (starting at 0) at which to insert the page, or -1 to append the page after all other pages.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="next_page" c:identifier="gtk_notebook_next_page"> <doc xml:space="preserve">Switches to the next page. Nothing happens if the current page is the last page.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="page_num" c:identifier="gtk_notebook_page_num"> <doc xml:space="preserve">Finds the index of the page which contains the given child widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index of the page containing @child, or -1 if @child is not in the notebook</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="popup_disable" c:identifier="gtk_notebook_popup_disable"> <doc xml:space="preserve">Disables the popup menu.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="popup_enable" c:identifier="gtk_notebook_popup_enable"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="prepend_page" c:identifier="gtk_notebook_prepend_page"> <doc xml:space="preserve">Prepends a page to @notebook.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting from 0) of the prepended page in the notebook, or -1 if function fails</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to use as the contents of the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkWidget to be used as the label for the page, or %NULL to use the default label, âpage Nâ</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="prepend_page_menu" c:identifier="gtk_notebook_prepend_page_menu"> <doc xml:space="preserve">Prepends a page to @notebook, specifying the widget to use as the label in the popup menu.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index (starting from 0) of the prepended page in the notebook, or -1 if function fails</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to use as the contents of the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkWidget to be used as the label for the page, or %NULL to use the default label, âpage Nâ</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="menu_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">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.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="prev_page" c:identifier="gtk_notebook_prev_page"> <doc xml:space="preserve">Switches to the previous page. Nothing happens if the current page is the first page.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> </parameters> </method> <method name="remove_page" c:identifier="gtk_notebook_remove_page"> <doc xml:space="preserve">Removes a page from the notebook given its index in the notebook.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">the index of a notebook page, starting from 0. If -1, the last page will be removed.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="reorder_child" c:identifier="gtk_notebook_reorder_child"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child to move</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the new position, or -1 to move to the end</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_action_widget" c:identifier="gtk_notebook_set_action_widget" version="2.20"> <doc xml:space="preserve">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. Note that action widgets are âinternalâ children of the notebook and thus not included in the list returned from gtk_container_foreach().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="pack_type" transfer-ownership="none"> <doc xml:space="preserve">pack type of the action widget</doc> <type name="PackType" c:type="GtkPackType"/> </parameter> </parameters> </method> <method name="set_current_page" c:identifier="gtk_notebook_set_current_page"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_group_name" c:identifier="gtk_notebook_set_group_name" version="2.24"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="group_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of the notebook group, or %NULL to unset it</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_menu_label" c:identifier="gtk_notebook_set_menu_label"> <doc xml:space="preserve">Changes the menu label for the page containing @child.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="menu_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the menu label, or %NULL for default</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_menu_label_text" c:identifier="gtk_notebook_set_menu_label_text"> <doc xml:space="preserve">Creates a new label and sets it as the menu label of @child.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="menu_text" transfer-ownership="none"> <doc xml:space="preserve">the label text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_scrollable" c:identifier="gtk_notebook_set_scrollable"> <doc xml:space="preserve">Sets whether the tab label area will have arrows for scrolling if there are too many tabs to fit in the area.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if scroll arrows should be added</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_border" c:identifier="gtk_notebook_set_show_border"> <doc xml:space="preserve">Sets whether a bevel will be drawn around the notebook pages. This only has a visual effect when the tabs are not shown. See gtk_notebook_set_show_tabs().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="show_border" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a bevel should be drawn around the notebook</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_tabs" c:identifier="gtk_notebook_set_show_tabs"> <doc xml:space="preserve">Sets whether to show the tabs for the notebook or not.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="show_tabs" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the tabs should be shown</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_tab_detachable" c:identifier="gtk_notebook_set_tab_detachable" version="2.10"> <doc xml:space="preserve">Sets whether the tab can be detached from @notebook to another notebook or widget. Note that 2 notebooks must share a common group identificator (see 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 gtk_notebook_detach_tab() instead of gtk_container_remove() 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. |[<!-- language="C" --> static void on_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time, gpointer user_data) { GtkWidget *notebook; GtkWidget **child; notebook = gtk_drag_get_source_widget (context); 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detachable" transfer-ownership="none"> <doc xml:space="preserve">whether the tab is detachable or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_tab_label" c:identifier="gtk_notebook_set_tab_label"> <doc xml:space="preserve">Changes the tab label for @child. If %NULL is specified for @tab_label, then the page will have the label âpage Nâ.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the tab label widget to use, or %NULL for default tab label</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_tab_label_text" c:identifier="gtk_notebook_set_tab_label_text"> <doc xml:space="preserve">Creates a new label and sets it as the tab label for the page containing @child.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the page</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_text" transfer-ownership="none"> <doc xml:space="preserve">the label text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_tab_pos" c:identifier="gtk_notebook_set_tab_pos"> <doc xml:space="preserve">Sets the edge at which the tabs for switching pages in the notebook are drawn.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook.</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">the edge to draw the tabs at</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </method> <method name="set_tab_reorderable" c:identifier="gtk_notebook_set_tab_reorderable" version="2.10"> <doc xml:space="preserve">Sets whether the notebook tab can be reordered via drag and drop or not.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="notebook" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook</doc> <type name="Notebook" c:type="GtkNotebook*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="reorderable" transfer-ownership="none"> <doc xml:space="preserve">whether the tab is reorderable or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="enable-popup" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="group-name" version="2.24" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Group name for tab drag and drop.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="page" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="scrollable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-border" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-tabs" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="tab-pos" writable="1" transfer-ownership="none"> <type name="PositionType"/> </property> <field name="container" readable="0" private="1"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="NotebookPrivate" c:type="GtkNotebookPrivate*"/> </field> <glib:signal name="change-current-page" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="create-window" when="last" version="2.12"> <doc xml:space="preserve">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 ).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkNotebook that @page should be added to, or %NULL.</doc> <type name="Notebook"/> </return-value> <parameters> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">the tab of @notebook that is being detached</doc> <type name="Widget"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the X coordinate where the drop happens</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the Y coordinate where the drop happens</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="focus-tab" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="NotebookTab"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-focus-out" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="DirectionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="page-added" when="last" version="2.10"> <doc xml:space="preserve">the ::page-added signal is emitted in the notebook right after a page is added to the notebook.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child #GtkWidget affected</doc> <type name="Widget"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">the new page number for @child</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="page-removed" when="last" version="2.10"> <doc xml:space="preserve">the ::page-removed signal is emitted in the notebook right after a page is removed from the notebook.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child #GtkWidget affected</doc> <type name="Widget"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">the @child page number</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="page-reordered" when="last" version="2.10"> <doc xml:space="preserve">the ::page-reordered signal is emitted in the notebook right after a page has been reordered.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child #GtkWidget affected</doc> <type name="Widget"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">the new page number for @child</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="reorder-tab" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="DirectionType"/> </parameter> <parameter name="p0" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="select-page" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="switch-page" when="last"> <doc xml:space="preserve">Emitted when the user or a function changes the current page.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">the new current page</doc> <type name="Widget"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <doc xml:space="preserve">the index of the page</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> </class> <class name="NotebookAccessible" c:symbol-prefix="notebook_accessible" c:type="GtkNotebookAccessible" parent="ContainerAccessible" glib:type-name="GtkNotebookAccessible" glib:get-type="gtk_notebook_accessible_get_type" glib:type-struct="NotebookAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="NotebookAccessiblePrivate" c:type="GtkNotebookAccessiblePrivate*"/> </field> </class> <record name="NotebookAccessibleClass" c:type="GtkNotebookAccessibleClass" glib:is-gtype-struct-for="NotebookAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="NotebookAccessiblePrivate" c:type="GtkNotebookAccessiblePrivate" disguised="1"> </record> <record name="NotebookClass" c:type="GtkNotebookClass" glib:is-gtype-struct-for="Notebook"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="switch_page"> <callback name="switch_page"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="page" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="select_page"> <callback name="select_page"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="move_focus" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="focus_tab"> <callback name="focus_tab"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="type" transfer-ownership="none"> <type name="NotebookTab" c:type="GtkNotebookTab"/> </parameter> </parameters> </callback> </field> <field name="change_current_page"> <callback name="change_current_page"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="offset" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="move_focus_out"> <callback name="move_focus_out"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </callback> </field> <field name="reorder_tab"> <callback name="reorder_tab"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> <parameter name="move_to_last" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="insert_page"> <callback name="insert_page"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="tab_label" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="menu_label" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="create_window" introspectable="0"> <callback name="create_window" introspectable="0"> <return-value> <type name="Notebook" c:type="GtkNotebook*"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="page" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="page_reordered"> <callback name="page_reordered"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="page_removed"> <callback name="page_removed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="page_added"> <callback name="page_added"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="Notebook" c:type="GtkNotebook*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="page_num" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="NotebookPageAccessible" c:symbol-prefix="notebook_page_accessible" c:type="GtkNotebookPageAccessible" parent="Atk.Object" glib:type-name="GtkNotebookPageAccessible" glib:get-type="gtk_notebook_page_accessible_get_type" glib:type-struct="NotebookPageAccessibleClass"> <implements name="Atk.Component"/> <constructor name="new" c:identifier="gtk_notebook_page_accessible_new"> <return-value transfer-ownership="full"> <type name="Atk.Object" c:type="AtkObject*"/> </return-value> <parameters> <parameter name="notebook" transfer-ownership="none"> <type name="NotebookAccessible" c:type="GtkNotebookAccessible*"/> </parameter> <parameter name="child" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <method name="invalidate" c:identifier="gtk_notebook_page_accessible_invalidate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="page" transfer-ownership="none"> <type name="NotebookPageAccessible" c:type="GtkNotebookPageAccessible*"/> </instance-parameter> </parameters> </method> <field name="parent"> <type name="Atk.Object" c:type="AtkObject"/> </field> <field name="priv"> <type name="NotebookPageAccessiblePrivate" c:type="GtkNotebookPageAccessiblePrivate*"/> </field> </class> <record name="NotebookPageAccessibleClass" c:type="GtkNotebookPageAccessibleClass" glib:is-gtype-struct-for="NotebookPageAccessible"> <field name="parent_class"> <type name="Atk.ObjectClass" c:type="AtkObjectClass"/> </field> </record> <record name="NotebookPageAccessiblePrivate" c:type="GtkNotebookPageAccessiblePrivate" disguised="1"> </record> <record name="NotebookPrivate" c:type="GtkNotebookPrivate" disguised="1"> </record> <enumeration name="NotebookTab" glib:type-name="GtkNotebookTab" glib:get-type="gtk_notebook_tab_get_type" c:type="GtkNotebookTab"> <member name="first" value="0" c:identifier="GTK_NOTEBOOK_TAB_FIRST" glib:nick="first"> </member> <member name="last" value="1" c:identifier="GTK_NOTEBOOK_TAB_LAST" glib:nick="last"> </member> </enumeration> <enumeration name="NumberUpLayout" glib:type-name="GtkNumberUpLayout" glib:get-type="gtk_number_up_layout_get_type" c:type="GtkNumberUpLayout"> <doc xml:space="preserve">Used to determine the layout of pages on a sheet when printing multiple pages per sheet.</doc> <member name="lrtb" value="0" c:identifier="GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM" glib:nick="lrtb"> <doc xml:space="preserve"></doc> </member> <member name="lrbt" value="1" c:identifier="GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP" glib:nick="lrbt"> <doc xml:space="preserve"></doc> </member> <member name="rltb" value="2" c:identifier="GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM" glib:nick="rltb"> <doc xml:space="preserve"></doc> </member> <member name="rlbt" value="3" c:identifier="GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP" glib:nick="rlbt"> <doc xml:space="preserve"></doc> </member> <member name="tblr" value="4" c:identifier="GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT" glib:nick="tblr"> <doc xml:space="preserve"></doc> </member> <member name="tbrl" value="5" c:identifier="GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT" glib:nick="tbrl"> <doc xml:space="preserve"></doc> </member> <member name="btlr" value="6" c:identifier="GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT" glib:nick="btlr"> <doc xml:space="preserve"></doc> </member> <member name="btrl" value="7" c:identifier="GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT" glib:nick="btrl"> <doc xml:space="preserve"></doc> </member> </enumeration> <class name="NumerableIcon" c:symbol-prefix="numerable_icon" c:type="GtkNumerableIcon" parent="Gio.EmblemedIcon" glib:type-name="GtkNumerableIcon" glib:get-type="gtk_numerable_icon_get_type" glib:type-struct="NumerableIconClass"> <doc xml:space="preserve">GtkNumerableIcon is a subclass of #GEmblemedIcon that can show a number or short string as an emblem. The number can be overlayed on top of another emblem, if desired. It supports theming by taking font and color information from a provided #GtkStyleContext; see gtk_numerable_icon_set_style_context(). Typical numerable icons:  </doc> <implements name="Gio.Icon"/> <function name="new" c:identifier="gtk_numerable_icon_new" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a new unthemed #GtkNumerableIcon.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GIcon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </return-value> <parameters> <parameter name="base_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GIcon to overlay on</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> </parameters> </function> <function name="new_with_style_context" c:identifier="gtk_numerable_icon_new_with_style_context" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a new #GtkNumerableIcon which will themed according to the passed #GtkStyleContext. This is a convenience constructor that calls gtk_numerable_icon_set_style_context() internally.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GIcon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </return-value> <parameters> <parameter name="base_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GIcon to overlay on</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> </parameters> </function> <method name="get_background_gicon" c:identifier="gtk_numerable_icon_get_background_gicon" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the #GIcon that was set as the base background image, or %NULL if thereâs none. The caller of this function does not own a reference to the returned #GIcon.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GIcon, or %NULL</doc> <type name="Gio.Icon" c:type="GIcon*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> </parameters> </method> <method name="get_background_icon_name" c:identifier="gtk_numerable_icon_get_background_icon_name" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the icon name used as the base background image, or %NULL if thereâs none.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">an icon name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> </parameters> </method> <method name="get_count" c:identifier="gtk_numerable_icon_get_count" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the value currently displayed by @self.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the currently displayed value</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> </parameters> </method> <method name="get_label" c:identifier="gtk_numerable_icon_get_label" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the currently displayed label of the icon, or %NULL.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the currently displayed label</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> </parameters> </method> <method name="get_style_context" c:identifier="gtk_numerable_icon_get_style_context" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the #GtkStyleContext used by the icon for theming, or %NULL if thereâs none.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkStyleContext, or %NULL. This object is internal to GTK+ and should not be unreffed. Use g_object_ref() if you want to keep it around</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> </parameters> </method> <method name="set_background_gicon" c:identifier="gtk_numerable_icon_set_background_gicon" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Updates the icon to use @icon as the base background image. If @icon is %NULL, @self will go back using style information or default theming for its background image. If this method is called and an icon name was already set as background for the icon, @icon will be used, i.e. the last method called between gtk_numerable_icon_set_background_gicon() and gtk_numerable_icon_set_background_icon_name() has always priority.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> <parameter name="icon" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GIcon, or %NULL</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> </parameters> </method> <method name="set_background_icon_name" c:identifier="gtk_numerable_icon_set_background_icon_name" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Updates the icon to use the icon named @icon_name from the current icon theme as the base background image. If @icon_name is %NULL, @self will go back using style information or default theming for its background image. If this method is called and a #GIcon was already set as background for the icon, @icon_name will be used, i.e. the last method called between gtk_numerable_icon_set_background_icon_name() and gtk_numerable_icon_set_background_gicon() has always priority.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an icon name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_count" c:identifier="gtk_numerable_icon_set_count" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the currently displayed value of @self to @count. The numeric value is always clamped to make it two digits, i.e. between -99 and 99. Setting a count of zero removes the emblem. If this method is called, and a label was already set on the icon, it will automatically be reset to %NULL before rendering the number, i.e. the last method called between gtk_numerable_icon_set_count() and gtk_numerable_icon_set_label() has always priority.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">a number between -99 and 99</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_numerable_icon_set_label" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the currently displayed value of @self to the string in @label. Setting an empty label removes the emblem. Note that this is meant for displaying short labels, such as roman numbers, or single letters. For roman numbers, consider using the Unicode characters U+2160 - U+217F. Strings longer than two characters will likely not be rendered very well. If this method is called, and a number was already set on the icon, it will automatically be reset to zero before rendering the label, i.e. the last method called between gtk_numerable_icon_set_label() and gtk_numerable_icon_set_count() has always priority.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a short label, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_style_context" c:identifier="gtk_numerable_icon_set_style_context" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Updates the icon to fetch theme information from the given #GtkStyleContext.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumerableIcon</doc> <type name="NumerableIcon" c:type="GtkNumerableIcon*"/> </instance-parameter> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> </parameters> </method> <property name="background-icon" writable="1" transfer-ownership="none"> <type name="Gio.Icon"/> </property> <property name="background-icon-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="count" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="label" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="style-context" writable="1" transfer-ownership="none"> <type name="StyleContext"/> </property> <field name="parent"> <type name="Gio.EmblemedIcon" c:type="GEmblemedIcon"/> </field> <field name="priv" readable="0" private="1"> <type name="NumerableIconPrivate" c:type="GtkNumerableIconPrivate*"/> </field> </class> <record name="NumerableIconClass" c:type="GtkNumerableIconClass" glib:is-gtype-struct-for="NumerableIcon"> <field name="parent_class"> <type name="Gio.EmblemedIconClass" c:type="GEmblemedIconClass"/> </field> <field name="padding"> <array zero-terminated="0" c:type="gpointer" fixed-size="16"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <record name="NumerableIconPrivate" c:type="GtkNumerableIconPrivate" disguised="1"> </record> <class name="OffscreenWindow" c:symbol-prefix="offscreen_window" c:type="GtkOffscreenWindow" parent="Window" glib:type-name="GtkOffscreenWindow" glib:get-type="gtk_offscreen_window_get_type" glib:type-struct="OffscreenWindowClass"> <doc xml:space="preserve">GtkOffscreenWindow is strictly intended to be used for obtaining snapshots of widgets that are not part of a normal widget hierarchy. Since #GtkOffscreenWindow is a toplevel widget you cannot obtain snapshots of a full window with it since you cannot pack a toplevel widget in another toplevel. The idea is to take a widget and manually set the state of it, add it to a GtkOffscreenWindow and then retrieve the snapshot as a #cairo_surface_t or #GdkPixbuf. GtkOffscreenWindow derives from #GtkWindow only as an implementation detail. Applications should not use any API specific to #GtkWindow to operate on this object. It should be treated as a #GtkBin that has no parent widget. When contained offscreen widgets are redrawn, GtkOffscreenWindow will emit a #GtkWidget::damage-event signal.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_offscreen_window_new" version="2.20"> <doc xml:space="preserve">Creates a toplevel container widget that is used to retrieve snapshots of widgets without showing them on the screen.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A pointer to a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_pixbuf" c:identifier="gtk_offscreen_window_get_pixbuf" version="2.20"> <doc xml:space="preserve">Retrieves a snapshot of the contained widget in the form of a #GdkPixbuf. This is a new pixbuf with a reference count of 1, and the application should unreference it once it is no longer needed.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A #GdkPixbuf pointer, or %NULL.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="offscreen" transfer-ownership="none"> <doc xml:space="preserve">the #GtkOffscreenWindow contained widget.</doc> <type name="OffscreenWindow" c:type="GtkOffscreenWindow*"/> </instance-parameter> </parameters> </method> <method name="get_surface" c:identifier="gtk_offscreen_window_get_surface" version="2.20"> <doc xml:space="preserve">Retrieves a snapshot of the contained widget in the form of a #cairo_surface_t. If you need to keep this around over window resizes then you should add a reference to it.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #cairo_surface_t pointer to the offscreen surface, or %NULL.</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </return-value> <parameters> <instance-parameter name="offscreen" transfer-ownership="none"> <doc xml:space="preserve">the #GtkOffscreenWindow contained widget.</doc> <type name="OffscreenWindow" c:type="GtkOffscreenWindow*"/> </instance-parameter> </parameters> </method> <field name="parent_object"> <type name="Window" c:type="GtkWindow"/> </field> </class> <record name="OffscreenWindowClass" c:type="GtkOffscreenWindowClass" glib:is-gtype-struct-for="OffscreenWindow"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="WindowClass" c:type="GtkWindowClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <interface name="Orientable" c:symbol-prefix="orientable" c:type="GtkOrientable" glib:type-name="GtkOrientable" glib:get-type="gtk_orientable_get_type" glib:type-struct="OrientableIface"> <doc xml:space="preserve">The #GtkOrientable interface is implemented by all widgets that can be oriented horizontally or vertically. Historically, such widgets have been realized as subclasses of a common base class (e.g #GtkBox/#GtkHBox/#GtkVBox or #GtkScale/#GtkHScale/#GtkVScale). #GtkOrientable is more flexible in that it allows the orientation to be changed at runtime, allowing the widgets to âflipâ. #GtkOrientable was introduced in GTK+ 2.16.</doc> <method name="get_orientation" c:identifier="gtk_orientable_get_orientation" version="2.16"> <doc xml:space="preserve">Retrieves the orientation of the @orientable.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the orientation of the @orientable.</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="orientable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkOrientable</doc> <type name="Orientable" c:type="GtkOrientable*"/> </instance-parameter> </parameters> </method> <method name="set_orientation" c:identifier="gtk_orientable_set_orientation" version="2.16"> <doc xml:space="preserve">Sets the orientation of the @orientable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="orientable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkOrientable</doc> <type name="Orientable" c:type="GtkOrientable*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the orientableâs new orientation.</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </method> <property name="orientation" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The orientation of the orientable.</doc> <type name="Orientation"/> </property> </interface> <record name="OrientableIface" c:type="GtkOrientableIface" glib:is-gtype-struct-for="Orientable"> <field name="base_iface"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> </record> <enumeration name="Orientation" glib:type-name="GtkOrientation" glib:get-type="gtk_orientation_get_type" c:type="GtkOrientation"> <doc xml:space="preserve">Represents the orientation of widgets and other objects which can be switched between horizontal and vertical orientation on the fly, like #GtkToolbar or #GtkGesturePan.</doc> <member name="horizontal" value="0" c:identifier="GTK_ORIENTATION_HORIZONTAL" glib:nick="horizontal"> <doc xml:space="preserve">The element is in horizontal orientation.</doc> </member> <member name="vertical" value="1" c:identifier="GTK_ORIENTATION_VERTICAL" glib:nick="vertical"> <doc xml:space="preserve">The element is in vertical orientation.</doc> </member> </enumeration> <class name="Overlay" c:symbol-prefix="overlay" c:type="GtkOverlay" parent="Bin" glib:type-name="GtkOverlay" glib:get-type="gtk_overlay_get_type" glib:type-struct="OverlayClass"> <doc xml:space="preserve">GtkOverlay is a container which contains a single main child, on top of which it can place âoverlayâ widgets. The position of each overlay widget is determined by its #GtkWidget:halign and #GtkWidget:valign properties. E.g. a widget with both alignments set to %GTK_ALIGN_START will be placed at the top left corner of the GtkOverlay container, whereas an overlay with halign set to %GTK_ALIGN_CENTER and valign set to %GTK_ALIGN_END will be placed a the bottom edge of the GtkOverlay, horizontally centered. The position can be adjusted by setting the margin properties of the child to non-zero values. More complicated placement of overlays is possible by connecting to the #GtkOverlay::get-child-position signal. # GtkOverlay as GtkBuildable The GtkOverlay implementation of the GtkBuildable interface supports placing a child as an overlay by specifying âoverlayâ as the âtypeâ attribute of a `<child>` element. # CSS nodes GtkOverlay has a single CSS node with the name âoverlayâ. Overlay children whose alignments cause them to be positioned at an edge get the style classes â.leftâ, â.rightâ, â.topâ, and/or â.bottomâ according to their position.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_overlay_new" version="3.2"> <doc xml:space="preserve">Creates a new #GtkOverlay.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkOverlay object.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="get_child_position"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="overlay" transfer-ownership="none"> <type name="Overlay" c:type="GtkOverlay*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="allocation" transfer-ownership="none"> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </virtual-method> <method name="add_overlay" c:identifier="gtk_overlay_add_overlay" version="3.2"> <doc xml:space="preserve">Adds @widget to @overlay. The widget will be stacked on top of the main widget added with gtk_container_add(). The position at which @widget is placed is determined from its #GtkWidget:halign and #GtkWidget:valign properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="overlay" transfer-ownership="none"> <doc xml:space="preserve">a #GtkOverlay</doc> <type name="Overlay" c:type="GtkOverlay*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget to be added to the container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_overlay_pass_through" c:identifier="gtk_overlay_get_overlay_pass_through" version="3.18"> <doc xml:space="preserve">Convenience function to get the value of the #GtkOverlay:pass-through child property for @widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the widget is a pass through child.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="overlay" transfer-ownership="none"> <doc xml:space="preserve">a #GtkOverlay</doc> <type name="Overlay" c:type="GtkOverlay*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">an overlay child of #GtkOverlay</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="reorder_overlay" c:identifier="gtk_overlay_reorder_overlay" version="3.18"> <doc xml:space="preserve">Moves @child to a new @index in the list of @overlay children. The list contains overlays in the order that these were added to @overlay. A widgetâs index in the @overlay children list determines which order the children are drawn if they overlap. The first child is drawn at the bottom. It also affects the default focus chain order.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="overlay" transfer-ownership="none"> <doc xml:space="preserve">a #GtkOverlay</doc> <type name="Overlay" c:type="GtkOverlay*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the overlaid #GtkWidget to move</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the new index for @child in the list of overlay children of @overlay, starting from 0. If negative, indicates the end of the list</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_overlay_pass_through" c:identifier="gtk_overlay_set_overlay_pass_through" version="3.18"> <doc xml:space="preserve">Convenience function to set the value of the #GtkOverlay:pass-through child property for @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="overlay" transfer-ownership="none"> <doc xml:space="preserve">a #GtkOverlay</doc> <type name="Overlay" c:type="GtkOverlay*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">an overlay child of #GtkOverlay</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="pass_through" transfer-ownership="none"> <doc xml:space="preserve">whether the child should pass the input through</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <field name="parent"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv"> <type name="OverlayPrivate" c:type="GtkOverlayPrivate*"/> </field> <glib:signal name="get-child-position" when="last"> <doc xml:space="preserve">The ::get-child-position signal is 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the @allocation has been filled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the child widget to position</doc> <type name="Widget"/> </parameter> <parameter name="allocation" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the allocation</doc> <type name="Gdk.Rectangle"/> </parameter> </parameters> </glib:signal> </class> <record name="OverlayClass" c:type="GtkOverlayClass" glib:is-gtype-struct-for="Overlay"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="get_child_position"> <callback name="get_child_position"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="overlay" transfer-ownership="none"> <type name="Overlay" c:type="GtkOverlay*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="allocation" transfer-ownership="none"> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="OverlayPrivate" c:type="GtkOverlayPrivate" disguised="1"> </record> <constant name="PAPER_NAME_A3" value="iso_a3" c:type="GTK_PAPER_NAME_A3"> <doc xml:space="preserve">Name for the A3 paper size.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PAPER_NAME_A4" value="iso_a4" c:type="GTK_PAPER_NAME_A4"> <doc xml:space="preserve">Name for the A4 paper size.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PAPER_NAME_A5" value="iso_a5" c:type="GTK_PAPER_NAME_A5"> <doc xml:space="preserve">Name for the A5 paper size.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PAPER_NAME_B5" value="iso_b5" c:type="GTK_PAPER_NAME_B5"> <doc xml:space="preserve">Name for the B5 paper size.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PAPER_NAME_EXECUTIVE" value="na_executive" c:type="GTK_PAPER_NAME_EXECUTIVE"> <doc xml:space="preserve">Name for the Executive paper size.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PAPER_NAME_LEGAL" value="na_legal" c:type="GTK_PAPER_NAME_LEGAL"> <doc xml:space="preserve">Name for the Legal paper size.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PAPER_NAME_LETTER" value="na_letter" c:type="GTK_PAPER_NAME_LETTER"> <doc xml:space="preserve">Name for the Letter paper size.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PATH_PRIO_MASK" value="15" c:type="GTK_PATH_PRIO_MASK"> <type name="gint" c:type="gint"/> </constant> <constant name="PRINT_SETTINGS_COLLATE" value="collate" c:type="GTK_PRINT_SETTINGS_COLLATE"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_DEFAULT_SOURCE" value="default-source" c:type="GTK_PRINT_SETTINGS_DEFAULT_SOURCE"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_DITHER" value="dither" c:type="GTK_PRINT_SETTINGS_DITHER"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_DUPLEX" value="duplex" c:type="GTK_PRINT_SETTINGS_DUPLEX"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_FINISHINGS" value="finishings" c:type="GTK_PRINT_SETTINGS_FINISHINGS"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_MEDIA_TYPE" value="media-type" c:type="GTK_PRINT_SETTINGS_MEDIA_TYPE"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_NUMBER_UP" value="number-up" c:type="GTK_PRINT_SETTINGS_NUMBER_UP"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_NUMBER_UP_LAYOUT" value="number-up-layout" c:type="GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_N_COPIES" value="n-copies" c:type="GTK_PRINT_SETTINGS_N_COPIES"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_ORIENTATION" value="orientation" c:type="GTK_PRINT_SETTINGS_ORIENTATION"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_OUTPUT_BASENAME" value="output-basename" c:type="GTK_PRINT_SETTINGS_OUTPUT_BASENAME" version="3.6"> <doc xml:space="preserve">The key used by the âPrint to fileâ printer to store the file name of the output without the path to the directory and the file extension.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_OUTPUT_BIN" value="output-bin" c:type="GTK_PRINT_SETTINGS_OUTPUT_BIN"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_OUTPUT_DIR" value="output-dir" c:type="GTK_PRINT_SETTINGS_OUTPUT_DIR" version="3.6"> <doc xml:space="preserve">The key used by the âPrint to fileâ printer to store the directory to which the output should be written.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_OUTPUT_FILE_FORMAT" value="output-file-format" c:type="GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT"> <doc xml:space="preserve">The key used by the âPrint to fileâ printer to store the format of the output. The supported values are âPSâ and âPDFâ.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_OUTPUT_URI" value="output-uri" c:type="GTK_PRINT_SETTINGS_OUTPUT_URI"> <doc xml:space="preserve">The key used by the âPrint to fileâ printer to store the URI to which the output should be written. GTK+ itself supports only âfile://â URIs.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_PAGE_RANGES" value="page-ranges" c:type="GTK_PRINT_SETTINGS_PAGE_RANGES"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_PAGE_SET" value="page-set" c:type="GTK_PRINT_SETTINGS_PAGE_SET"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_PAPER_FORMAT" value="paper-format" c:type="GTK_PRINT_SETTINGS_PAPER_FORMAT"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_PAPER_HEIGHT" value="paper-height" c:type="GTK_PRINT_SETTINGS_PAPER_HEIGHT"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_PAPER_WIDTH" value="paper-width" c:type="GTK_PRINT_SETTINGS_PAPER_WIDTH"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_PRINTER" value="printer" c:type="GTK_PRINT_SETTINGS_PRINTER"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_PRINTER_LPI" value="printer-lpi" c:type="GTK_PRINT_SETTINGS_PRINTER_LPI"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_PRINT_PAGES" value="print-pages" c:type="GTK_PRINT_SETTINGS_PRINT_PAGES"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_QUALITY" value="quality" c:type="GTK_PRINT_SETTINGS_QUALITY"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_RESOLUTION" value="resolution" c:type="GTK_PRINT_SETTINGS_RESOLUTION"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_RESOLUTION_X" value="resolution-x" c:type="GTK_PRINT_SETTINGS_RESOLUTION_X"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_RESOLUTION_Y" value="resolution-y" c:type="GTK_PRINT_SETTINGS_RESOLUTION_Y"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_REVERSE" value="reverse" c:type="GTK_PRINT_SETTINGS_REVERSE"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_SCALE" value="scale" c:type="GTK_PRINT_SETTINGS_SCALE"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_USE_COLOR" value="use-color" c:type="GTK_PRINT_SETTINGS_USE_COLOR"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_WIN32_DRIVER_EXTRA" value="win32-driver-extra" c:type="GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRINT_SETTINGS_WIN32_DRIVER_VERSION" value="win32-driver-version" c:type="GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION"> <type name="utf8" c:type="gchar*"/> </constant> <constant name="PRIORITY_RESIZE" value="10" c:type="GTK_PRIORITY_RESIZE"> <doc xml:space="preserve">Use this priority for functionality related to size allocation. It is used internally by GTK+ to compute the sizes of widgets. This priority is higher than %GDK_PRIORITY_REDRAW to avoid resizing a widget which was just redrawn.</doc> <type name="gint" c:type="gint"/> </constant> <enumeration name="PackDirection" glib:type-name="GtkPackDirection" glib:get-type="gtk_pack_direction_get_type" c:type="GtkPackDirection"> <doc xml:space="preserve">Determines how widgets should be packed inside menubars and menuitems contained in menubars.</doc> <member name="ltr" value="0" c:identifier="GTK_PACK_DIRECTION_LTR" glib:nick="ltr"> <doc xml:space="preserve">Widgets are packed left-to-right</doc> </member> <member name="rtl" value="1" c:identifier="GTK_PACK_DIRECTION_RTL" glib:nick="rtl"> <doc xml:space="preserve">Widgets are packed right-to-left</doc> </member> <member name="ttb" value="2" c:identifier="GTK_PACK_DIRECTION_TTB" glib:nick="ttb"> <doc xml:space="preserve">Widgets are packed top-to-bottom</doc> </member> <member name="btt" value="3" c:identifier="GTK_PACK_DIRECTION_BTT" glib:nick="btt"> <doc xml:space="preserve">Widgets are packed bottom-to-top</doc> </member> </enumeration> <enumeration name="PackType" glib:type-name="GtkPackType" glib:get-type="gtk_pack_type_get_type" c:type="GtkPackType"> <doc xml:space="preserve">Represents the packing location #GtkBox children. (See: #GtkVBox, #GtkHBox, and #GtkButtonBox).</doc> <member name="start" value="0" c:identifier="GTK_PACK_START" glib:nick="start"> <doc xml:space="preserve">The child is packed into the start of the box</doc> </member> <member name="end" value="1" c:identifier="GTK_PACK_END" glib:nick="end"> <doc xml:space="preserve">The child is packed into the end of the box</doc> </member> </enumeration> <record name="PadActionEntry" c:type="GtkPadActionEntry"> <doc xml:space="preserve">Struct defining a pad action entry.</doc> <field name="type" writable="1"> <doc xml:space="preserve">the type of pad feature that will trigger this action entry.</doc> <type name="PadActionType" c:type="GtkPadActionType"/> </field> <field name="index" writable="1"> <doc xml:space="preserve">the 0-indexed button/ring/strip number that will trigger this action entry.</doc> <type name="gint" c:type="gint"/> </field> <field name="mode" writable="1"> <doc xml:space="preserve">the mode that will trigger this action entry, or -1 for all modes.</doc> <type name="gint" c:type="gint"/> </field> <field name="label" writable="1"> <doc xml:space="preserve">Human readable description of this action entry, this string should be deemed user-visible.</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="action_name" writable="1"> <doc xml:space="preserve">action name that will be activated in the #GActionGroup.</doc> <type name="utf8" c:type="gchar*"/> </field> </record> <enumeration name="PadActionType" glib:type-name="GtkPadActionType" glib:get-type="gtk_pad_action_type_get_type" c:type="GtkPadActionType"> <doc xml:space="preserve">The type of a pad action.</doc> <member name="button" value="0" c:identifier="GTK_PAD_ACTION_BUTTON" glib:nick="button"> <doc xml:space="preserve">Action is triggered by a pad button</doc> </member> <member name="ring" value="1" c:identifier="GTK_PAD_ACTION_RING" glib:nick="ring"> <doc xml:space="preserve">Action is triggered by a pad ring</doc> </member> <member name="strip" value="2" c:identifier="GTK_PAD_ACTION_STRIP" glib:nick="strip"> <doc xml:space="preserve">Action is triggered by a pad strip</doc> </member> </enumeration> <class name="PadController" c:symbol-prefix="pad_controller" c:type="GtkPadController" parent="EventController" glib:type-name="GtkPadController" glib:get-type="gtk_pad_controller_get_type" glib:type-struct="PadControllerClass"> <doc xml:space="preserve">#GtkPadController is an event controller for the pads found in drawing tablets (The collection of buttons and tactile sensors often found around the stylus-sensitive area). These buttons and sensors have no implicit meaning, and by default they perform no action, this event controller is provided to map those to #GAction objects, thus letting the application give those a more semantic meaning. Buttons and sensors are not constrained to triggering a single action, some %GDK_SOURCE_TABLET_PAD devices feature multiple "modes", all these input elements have one current mode, which may determine the final action being triggered. Pad devices often divide buttons and sensors into groups, all elements in a group share the same current mode, but different groups may have different modes. See gdk_device_pad_get_n_groups() and gdk_device_pad_get_group_n_modes(). Each of the actions that a given button/strip/ring performs for a given mode is defined by #GtkPadActionEntry, it contains an action name that will be looked up in the given #GActionGroup and activated whenever the specified input element and mode are triggered. A simple example of #GtkPadController usage, assigning button 1 in all modes and pad devices to an "invert-selection" action: |[ GtkPadActionEntry *pad_actions[] = { { GTK_PAD_ACTION_BUTTON, 1, -1, "Invert selection", "pad-actions.invert-selection" }, ⌠}; ⌠action_group = g_simple_action_group_new (); action = g_simple_action_new ("pad-actions.invert-selection", NULL); g_signal_connect (action, "activate", on_invert_selection_activated, NULL); g_action_map_add_action (G_ACTION_MAP (action_group), action); ⌠pad_controller = gtk_pad_controller_new (window, action_group, NULL); ]| The actions belonging to rings/strips will be activated with a parameter of type %G_VARIANT_TYPE_DOUBLE bearing the value of the given axis, it is required that those are made stateful and accepting this #GVariantType.</doc> <constructor name="new" c:identifier="gtk_pad_controller_new" version="3.22"> <doc xml:space="preserve">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 @window, as execution order is not guaranteed. The #GtkPadController is created with no mapped actions. In order to map pad events to actions, use gtk_pad_controller_set_action_entries() or gtk_pad_controller_set_action().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkPadController</doc> <type name="PadController" c:type="GtkPadController*"/> </return-value> <parameters> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">#GActionGroup to trigger actions from</doc> <type name="Gio.ActionGroup" c:type="GActionGroup*"/> </parameter> <parameter name="pad" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A %GDK_SOURCE_TABLET_PAD device, or %NULL to handle all pads</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> </parameters> </constructor> <method name="set_action" c:identifier="gtk_pad_controller_set_action" version="3.22"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="controller" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPadController</doc> <type name="PadController" c:type="GtkPadController*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the type of pad feature that will trigger this action</doc> <type name="PadActionType" c:type="GtkPadActionType"/> </parameter> <parameter name="index" transfer-ownership="none"> <doc xml:space="preserve">the 0-indexed button/ring/strip number that will trigger this action</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">the mode that will trigger this action, or -1 for all modes.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">Human readable description of this action, this string should be deemed user-visible.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="action_name" transfer-ownership="none"> <doc xml:space="preserve">action name that will be activated in the #GActionGroup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_action_entries" c:identifier="gtk_pad_controller_set_action_entries" version="3.22"> <doc xml:space="preserve">This is a convenience function to add a group of action entries on @controller. See #GtkPadActionEntry and gtk_pad_controller_set_action().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="controller" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPadController</doc> <type name="PadController" c:type="GtkPadController*"/> </instance-parameter> <parameter name="entries" transfer-ownership="none"> <doc xml:space="preserve">the action entries to set on @controller</doc> <array length="1" zero-terminated="0" c:type="GtkPadActionEntry*"> <type name="PadActionEntry" c:type="GtkPadActionEntry"/> </array> </parameter> <parameter name="n_entries" transfer-ownership="none"> <doc xml:space="preserve">the number of elements in @entries</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="action-group" writable="1" construct-only="1" transfer-ownership="none"> <type name="Gio.ActionGroup"/> </property> <property name="pad" writable="1" construct-only="1" transfer-ownership="none"> <type name="Gdk.Device"/> </property> </class> <record name="PadControllerClass" c:type="GtkPadControllerClass" disguised="1" glib:is-gtype-struct-for="PadController"> </record> <enumeration name="PageOrientation" glib:type-name="GtkPageOrientation" glib:get-type="gtk_page_orientation_get_type" c:type="GtkPageOrientation"> <doc xml:space="preserve">See also gtk_print_settings_set_orientation().</doc> <member name="portrait" value="0" c:identifier="GTK_PAGE_ORIENTATION_PORTRAIT" glib:nick="portrait"> <doc xml:space="preserve">Portrait mode.</doc> </member> <member name="landscape" value="1" c:identifier="GTK_PAGE_ORIENTATION_LANDSCAPE" glib:nick="landscape"> <doc xml:space="preserve">Landscape mode.</doc> </member> <member name="reverse_portrait" value="2" c:identifier="GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT" glib:nick="reverse-portrait"> <doc xml:space="preserve">Reverse portrait mode.</doc> </member> <member name="reverse_landscape" value="3" c:identifier="GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE" glib:nick="reverse-landscape"> <doc xml:space="preserve">Reverse landscape mode.</doc> </member> </enumeration> <record name="PageRange" c:type="GtkPageRange"> <doc xml:space="preserve">See also gtk_print_settings_set_page_ranges().</doc> <field name="start" writable="1"> <doc xml:space="preserve">start of page range.</doc> <type name="gint" c:type="gint"/> </field> <field name="end" writable="1"> <doc xml:space="preserve">end of page range.</doc> <type name="gint" c:type="gint"/> </field> </record> <enumeration name="PageSet" glib:type-name="GtkPageSet" glib:get-type="gtk_page_set_get_type" c:type="GtkPageSet"> <doc xml:space="preserve">See also gtk_print_job_set_page_set().</doc> <member name="all" value="0" c:identifier="GTK_PAGE_SET_ALL" glib:nick="all"> <doc xml:space="preserve">All pages.</doc> </member> <member name="even" value="1" c:identifier="GTK_PAGE_SET_EVEN" glib:nick="even"> <doc xml:space="preserve">Even pages.</doc> </member> <member name="odd" value="2" c:identifier="GTK_PAGE_SET_ODD" glib:nick="odd"> <doc xml:space="preserve">Odd pages.</doc> </member> </enumeration> <class name="PageSetup" c:symbol-prefix="page_setup" c:type="GtkPageSetup" parent="GObject.Object" glib:type-name="GtkPageSetup" glib:get-type="gtk_page_setup_get_type"> <doc xml:space="preserve">A GtkPageSetup object stores the page size, orientation and margins. The idea is that you can get one of these from the page setup dialog and then pass it to the #GtkPrintOperation when printing. The benefit of splitting this out of the #GtkPrintSettings is that these affect the actual layout of the page, and thus need to be set long before user prints. ## Margins ## {#print-margins} The margins specified in this object are the âprint marginsâ, i.e. the parts of the page that the printer cannot print on. These are different from the layout margins that a word processor uses; they are typically used to determine the minimal size for the layout margins. To obtain a #GtkPageSetup use gtk_page_setup_new() to get the defaults, or use gtk_print_run_page_setup_dialog() to show the page setup dialog and receive the resulting page setup. ## A page setup dialog |[<!-- language="C" --> static GtkPrintSettings *settings = NULL; static GtkPageSetup *page_setup = NULL; static void do_page_setup (void) { GtkPageSetup *new_page_setup; if (settings == NULL) settings = gtk_print_settings_new (); new_page_setup = gtk_print_run_page_setup_dialog (GTK_WINDOW (main_window), page_setup, settings); if (page_setup) g_object_unref (page_setup); page_setup = new_page_setup; } ]| Printing support was added in GTK+ 2.10.</doc> <constructor name="new" c:identifier="gtk_page_setup_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkPageSetup.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPageSetup.</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </return-value> </constructor> <constructor name="new_from_file" c:identifier="gtk_page_setup_new_from_file" version="2.12" throws="1"> <doc xml:space="preserve">Reads the page setup from the file @file_name. Returns a new #GtkPageSetup object with the restored page setup, or %NULL if an error occurred. See gtk_page_setup_to_file().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the restored #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </return-value> <parameters> <parameter name="file_name" transfer-ownership="none"> <doc xml:space="preserve">the filename to read the page setup from</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_gvariant" c:identifier="gtk_page_setup_new_from_gvariant" version="3.22"> <doc xml:space="preserve">Desrialize a page setup from an a{sv} variant in the format produced by gtk_page_setup_to_gvariant().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPageSetup object</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </return-value> <parameters> <parameter name="variant" transfer-ownership="none"> <doc xml:space="preserve">an a{sv} #GVariant</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </constructor> <constructor name="new_from_key_file" c:identifier="gtk_page_setup_new_from_key_file" version="2.12" throws="1"> <doc xml:space="preserve">Reads the page setup from the group @group_name in the key file @key_file. Returns a new #GtkPageSetup object with the restored page setup, or %NULL if an error occurred.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the restored #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </return-value> <parameters> <parameter name="key_file" transfer-ownership="none"> <doc xml:space="preserve">the #GKeyFile to retrieve the page_setup from</doc> <type name="GLib.KeyFile" c:type="GKeyFile*"/> </parameter> <parameter name="group_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of the group in the key_file to read, or %NULL to use the default name âPage Setupâ</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="copy" c:identifier="gtk_page_setup_copy" version="2.10"> <doc xml:space="preserve">Copies a #GtkPageSetup.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of @other</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </return-value> <parameters> <instance-parameter name="other" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPageSetup to copy</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> </parameters> </method> <method name="get_bottom_margin" c:identifier="gtk_page_setup_get_bottom_margin" version="2.10"> <doc xml:space="preserve">Gets the bottom margin in units of @unit.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the bottom margin</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_left_margin" c:identifier="gtk_page_setup_get_left_margin" version="2.10"> <doc xml:space="preserve">Gets the left margin in units of @unit.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the left margin</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_orientation" c:identifier="gtk_page_setup_get_orientation" version="2.10"> <doc xml:space="preserve">Gets the page orientation of the #GtkPageSetup.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the page orientation</doc> <type name="PageOrientation" c:type="GtkPageOrientation"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> </parameters> </method> <method name="get_page_height" c:identifier="gtk_page_setup_get_page_height" version="2.10"> <doc xml:space="preserve">Returns the page height in units of @unit. Note that this function takes orientation and margins into consideration. See gtk_page_setup_get_paper_height().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the page height.</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_page_width" c:identifier="gtk_page_setup_get_page_width" version="2.10"> <doc xml:space="preserve">Returns the page width in units of @unit. Note that this function takes orientation and margins into consideration. See gtk_page_setup_get_paper_width().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the page width.</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_paper_height" c:identifier="gtk_page_setup_get_paper_height" version="2.10"> <doc xml:space="preserve">Returns the paper height in units of @unit. Note that this function takes orientation, but not margins into consideration. See gtk_page_setup_get_page_height().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the paper height.</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_paper_size" c:identifier="gtk_page_setup_get_paper_size" version="2.10"> <doc xml:space="preserve">Gets the paper size of the #GtkPageSetup.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the paper size</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> </parameters> </method> <method name="get_paper_width" c:identifier="gtk_page_setup_get_paper_width" version="2.10"> <doc xml:space="preserve">Returns the paper width in units of @unit. Note that this function takes orientation, but not margins into consideration. See gtk_page_setup_get_page_width().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the paper width.</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_right_margin" c:identifier="gtk_page_setup_get_right_margin" version="2.10"> <doc xml:space="preserve">Gets the right margin in units of @unit.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the right margin</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_top_margin" c:identifier="gtk_page_setup_get_top_margin" version="2.10"> <doc xml:space="preserve">Gets the top margin in units of @unit.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the top margin</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="load_file" c:identifier="gtk_page_setup_load_file" version="2.14" throws="1"> <doc xml:space="preserve">Reads the page setup from the file @file_name. See gtk_page_setup_to_file().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="file_name" transfer-ownership="none"> <doc xml:space="preserve">the filename to read the page setup from</doc> <type name="filename" c:type="const char*"/> </parameter> </parameters> </method> <method name="load_key_file" c:identifier="gtk_page_setup_load_key_file" version="2.14" throws="1"> <doc xml:space="preserve">Reads the page setup from the group @group_name in the key file @key_file.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="key_file" transfer-ownership="none"> <doc xml:space="preserve">the #GKeyFile to retrieve the page_setup from</doc> <type name="GLib.KeyFile" c:type="GKeyFile*"/> </parameter> <parameter name="group_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of the group in the key_file to read, or %NULL to use the default name âPage Setupâ</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_bottom_margin" c:identifier="gtk_page_setup_set_bottom_margin" version="2.10"> <doc xml:space="preserve">Sets the bottom margin of the #GtkPageSetup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the new bottom margin in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the units for @margin</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="set_left_margin" c:identifier="gtk_page_setup_set_left_margin" version="2.10"> <doc xml:space="preserve">Sets the left margin of the #GtkPageSetup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the new left margin in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the units for @margin</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="set_orientation" c:identifier="gtk_page_setup_set_orientation" version="2.10"> <doc xml:space="preserve">Sets the page orientation of the #GtkPageSetup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageOrientation value</doc> <type name="PageOrientation" c:type="GtkPageOrientation"/> </parameter> </parameters> </method> <method name="set_paper_size" c:identifier="gtk_page_setup_set_paper_size" version="2.10"> <doc xml:space="preserve">Sets the paper size of the #GtkPageSetup without changing the margins. See gtk_page_setup_set_paper_size_and_default_margins().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </parameter> </parameters> </method> <method name="set_paper_size_and_default_margins" c:identifier="gtk_page_setup_set_paper_size_and_default_margins" version="2.10"> <doc xml:space="preserve">Sets the paper size of the #GtkPageSetup and modifies the margins according to the new paper size.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </parameter> </parameters> </method> <method name="set_right_margin" c:identifier="gtk_page_setup_set_right_margin" version="2.10"> <doc xml:space="preserve">Sets the right margin of the #GtkPageSetup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the new right margin in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the units for @margin</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="set_top_margin" c:identifier="gtk_page_setup_set_top_margin" version="2.10"> <doc xml:space="preserve">Sets the top margin of the #GtkPageSetup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the new top margin in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the units for @margin</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="to_file" c:identifier="gtk_page_setup_to_file" version="2.12" throws="1"> <doc xml:space="preserve">This function saves the information from @setup to @file_name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="file_name" transfer-ownership="none"> <doc xml:space="preserve">the file to save to</doc> <type name="filename" c:type="const char*"/> </parameter> </parameters> </method> <method name="to_gvariant" c:identifier="gtk_page_setup_to_gvariant" version="3.22"> <doc xml:space="preserve">Serialize page setup to an a{sv} variant.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new, floating, #GVariant</doc> <type name="GLib.Variant" c:type="GVariant*"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> </parameters> </method> <method name="to_key_file" c:identifier="gtk_page_setup_to_key_file" version="2.12"> <doc xml:space="preserve">This function adds the page setup from @setup to @key_file.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </instance-parameter> <parameter name="key_file" transfer-ownership="none"> <doc xml:space="preserve">the #GKeyFile to save the page setup to</doc> <type name="GLib.KeyFile" c:type="GKeyFile*"/> </parameter> <parameter name="group_name" transfer-ownership="none"> <doc xml:space="preserve">the group to add the settings to in @key_file, or %NULL to use the default name âPage Setupâ</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> </class> <callback name="PageSetupDoneFunc" c:type="GtkPageSetupDoneFunc"> <doc xml:space="preserve">The type of function that is passed to gtk_print_run_page_setup_dialog_async(). This function will be called when the page setup dialog is dismissed, and also serves as destroy notify for @data.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="page_setup" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPageSetup that has been</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data that has been passed to gtk_print_run_page_setup_dialog_async()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <enumeration name="PanDirection" version="3.14" glib:type-name="GtkPanDirection" glib:get-type="gtk_pan_direction_get_type" c:type="GtkPanDirection"> <doc xml:space="preserve">Describes the panning direction of a #GtkGesturePan</doc> <member name="left" value="0" c:identifier="GTK_PAN_DIRECTION_LEFT" glib:nick="left"> <doc xml:space="preserve">panned towards the left</doc> </member> <member name="right" value="1" c:identifier="GTK_PAN_DIRECTION_RIGHT" glib:nick="right"> <doc xml:space="preserve">panned towards the right</doc> </member> <member name="up" value="2" c:identifier="GTK_PAN_DIRECTION_UP" glib:nick="up"> <doc xml:space="preserve">panned upwards</doc> </member> <member name="down" value="3" c:identifier="GTK_PAN_DIRECTION_DOWN" glib:nick="down"> <doc xml:space="preserve">panned downwards</doc> </member> </enumeration> <class name="Paned" c:symbol-prefix="paned" c:type="GtkPaned" parent="Container" glib:type-name="GtkPaned" glib:get-type="gtk_paned_get_type" glib:type-struct="PanedClass"> <doc xml:space="preserve">#GtkPaned has two panes, arranged either horizontally or vertically. The division between the two panes is adjustable by the user by dragging a handle. Child widgets are added to the panes of the widget with gtk_paned_pack1() and gtk_paned_pack2(). The division between the two children is set by default from the size requests of the children, but it can be adjusted by the user. A paned widget draws a separator between the two child widgets and a small handle that the user can drag to adjust the division. It does not draw any relief around the children or around the separator. (The space in which the separator is called the gutter.) Often, it is useful to put each child inside a #GtkFrame with the shadow type set to %GTK_SHADOW_IN so that the gutter appears as a ridge. No separator is drawn if one of the children is missing. Each child has two options that can be set, @resize and @shrink. If @resize is true, then when the #GtkPaned is resized, that child will expand or shrink along with the paned widget. If @shrink is true, then that child can be made smaller than its requisition by the user. Setting @shrink to %FALSE allows the application to set a minimum size. If @resize is false for both children, then this is treated as if @resize is true for both children. The application can set the position of the slider as if it were set by the user, by calling gtk_paned_set_position(). # CSS nodes |[<!-- language="plain" --> paned âââ <child> âââ separator[.wide] â°ââ <child> ]| GtkPaned has a main CSS node with name paned, and a subnode for the separator with name separator. The subnode gets a .wide style class when the paned is supposed to be wide. In horizontal orientation, the nodes of the children are always arranged from left to right. So :first-child will always select the leftmost child, regardless of text direction. ## Creating a paned widget with minimum sizes. |[<!-- language="C" --> GtkWidget *hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); GtkWidget *frame1 = gtk_frame_new (NULL); GtkWidget *frame2 = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN); gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_IN); gtk_widget_set_size_request (hpaned, 200, -1); gtk_paned_pack1 (GTK_PANED (hpaned), frame1, TRUE, FALSE); gtk_widget_set_size_request (frame1, 50, -1); gtk_paned_pack2 (GTK_PANED (hpaned), frame2, FALSE, FALSE); gtk_widget_set_size_request (frame2, 50, -1); ]|</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_paned_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkPaned widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkPaned.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the panedâs orientation.</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </constructor> <virtual-method name="accept_position"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="cancel_position"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="cycle_child_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="reverse" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="cycle_handle_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="reverse" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_handle"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> </parameters> </virtual-method> <virtual-method name="toggle_handle_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> </parameters> </virtual-method> <method name="add1" c:identifier="gtk_paned_add1"> <doc xml:space="preserve">Adds a child to the top or left pane with default parameters. This is equivalent to `gtk_paned_pack1 (paned, child, FALSE, TRUE)`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a paned widget</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="add2" c:identifier="gtk_paned_add2"> <doc xml:space="preserve">Adds a child to the bottom or right pane with default parameters. This is equivalent to `gtk_paned_pack2 (paned, child, TRUE, TRUE)`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a paned widget</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_child1" c:identifier="gtk_paned_get_child1" version="2.4"> <doc xml:space="preserve">Obtains the first child of the paned widget.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">first child, or %NULL if it is not set.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaned widget</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> </parameters> </method> <method name="get_child2" c:identifier="gtk_paned_get_child2" version="2.4"> <doc xml:space="preserve">Obtains the second child of the paned widget.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">second child, or %NULL if it is not set.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaned widget</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> </parameters> </method> <method name="get_handle_window" c:identifier="gtk_paned_get_handle_window" version="2.20"> <doc xml:space="preserve">Returns the #GdkWindow of the handle. This function is useful when handling button or motion events because it enables the callback to distinguish between the window of the paned, a child and the handle.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the panedâs handle window.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaned</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> </parameters> </method> <method name="get_position" c:identifier="gtk_paned_get_position"> <doc xml:space="preserve">Obtains the position of the divider between the two panes.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">position of the divider</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaned widget</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> </parameters> </method> <method name="get_wide_handle" c:identifier="gtk_paned_get_wide_handle" version="3.16"> <doc xml:space="preserve">Gets the #GtkPaned:wide-handle property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the paned should have a wide handle</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaned</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> </parameters> </method> <method name="pack1" c:identifier="gtk_paned_pack1"> <doc xml:space="preserve">Adds a child to the top or left pane.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a paned widget</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="resize" transfer-ownership="none"> <doc xml:space="preserve">should this child expand when the paned widget is resized.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="shrink" transfer-ownership="none"> <doc xml:space="preserve">can this child be made smaller than its requisition.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="pack2" c:identifier="gtk_paned_pack2"> <doc xml:space="preserve">Adds a child to the bottom or right pane.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a paned widget</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the child to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="resize" transfer-ownership="none"> <doc xml:space="preserve">should this child expand when the paned widget is resized.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="shrink" transfer-ownership="none"> <doc xml:space="preserve">can this child be made smaller than its requisition.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_position" c:identifier="gtk_paned_set_position"> <doc xml:space="preserve">Sets the position of the divider between the two panes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaned widget</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">pixel position of divider, a negative value means that the position is unset.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_wide_handle" c:identifier="gtk_paned_set_wide_handle" version="3.16"> <doc xml:space="preserve">Sets the #GtkPaned:wide-handle property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="paned" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaned</doc> <type name="Paned" c:type="GtkPaned*"/> </instance-parameter> <parameter name="wide" transfer-ownership="none"> <doc xml:space="preserve">the new value for the #GtkPaned:wide-handle property</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="max-position" version="2.4" transfer-ownership="none"> <doc xml:space="preserve">The largest possible value for the position property. This property is derived from the size and shrinkability of the widget's children.</doc> <type name="gint" c:type="gint"/> </property> <property name="min-position" version="2.4" transfer-ownership="none"> <doc xml:space="preserve">The smallest possible value for the position property. This property is derived from the size and shrinkability of the widget's children.</doc> <type name="gint" c:type="gint"/> </property> <property name="position" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="position-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="wide-handle" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Setting this property to %TRUE indicates that the paned needs to provide stronger visual separation (e.g. because it separates between two notebooks, whose tab rows would otherwise merge visually).</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="PanedPrivate" c:type="GtkPanedPrivate*"/> </field> <glib:signal name="accept-position" when="last" action="1" version="2.0"> <doc xml:space="preserve">The ::accept-position signal is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle when moving it using key bindings. The default binding for this signal is Return or Space.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="cancel-position" when="last" action="1" version="2.0"> <doc xml:space="preserve">The ::cancel-position signal is a [keybinding signal][GtkBindingSignal] which gets 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. The default binding for this signal is Escape.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="cycle-child-focus" when="last" action="1" version="2.0"> <doc xml:space="preserve">The ::cycle-child-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle the focus between the children of the paned. The default binding is f6.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="reversed" transfer-ownership="none"> <doc xml:space="preserve">whether cycling backward or forward</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="cycle-handle-focus" when="last" action="1" version="2.0"> <doc xml:space="preserve">The ::cycle-handle-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle whether the paned should grab focus to allow the user to change position of the handle by using key bindings. The default binding for this signal is f8.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="reversed" transfer-ownership="none"> <doc xml:space="preserve">whether cycling backward or forward</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-handle" when="last" action="1" version="2.0"> <doc xml:space="preserve">The ::move-handle signal is a [keybinding signal][GtkBindingSignal] which gets emitted to move the handle when the user is using key bindings to move it.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="scroll_type" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollType</doc> <type name="ScrollType"/> </parameter> </parameters> </glib:signal> <glib:signal name="toggle-handle-focus" when="last" action="1" version="2.0"> <doc xml:space="preserve">The ::toggle-handle-focus is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle and then move focus to the next widget in the focus chain. The default binding is Tab.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> </class> <class name="PanedAccessible" c:symbol-prefix="paned_accessible" c:type="GtkPanedAccessible" parent="ContainerAccessible" glib:type-name="GtkPanedAccessible" glib:get-type="gtk_paned_accessible_get_type" glib:type-struct="PanedAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Value"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="PanedAccessiblePrivate" c:type="GtkPanedAccessiblePrivate*"/> </field> </class> <record name="PanedAccessibleClass" c:type="GtkPanedAccessibleClass" glib:is-gtype-struct-for="PanedAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="PanedAccessiblePrivate" c:type="GtkPanedAccessiblePrivate" disguised="1"> </record> <record name="PanedClass" c:type="GtkPanedClass" glib:is-gtype-struct-for="Paned"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="cycle_child_focus"> <callback name="cycle_child_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </parameter> <parameter name="reverse" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="toggle_handle_focus"> <callback name="toggle_handle_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </parameter> </parameters> </callback> </field> <field name="move_handle"> <callback name="move_handle"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> </parameters> </callback> </field> <field name="cycle_handle_focus"> <callback name="cycle_handle_focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </parameter> <parameter name="reverse" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="accept_position"> <callback name="accept_position"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </parameter> </parameters> </callback> </field> <field name="cancel_position"> <callback name="cancel_position"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="paned" transfer-ownership="none"> <type name="Paned" c:type="GtkPaned*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="PanedPrivate" c:type="GtkPanedPrivate" disguised="1"> </record> <record name="PaperSize" c:type="GtkPaperSize" glib:type-name="GtkPaperSize" glib:get-type="gtk_paper_size_get_type" c:symbol-prefix="paper_size"> <doc xml:space="preserve">GtkPaperSize handles paper sizes. It uses the standard called [PWG 5101.1-2002 PWG: Standard for Media Standardized Names](http://www.pwg.org/standards.html) to name the paper sizes (and to get the data for the page sizes). In addition to standard paper sizes, GtkPaperSize allows to construct custom paper sizes with arbitrary dimensions. The #GtkPaperSize object stores not only the dimensions (width and height) of a paper size and its name, it also provides default [print margins][print-margins]. Printing support has been added in GTK+ 2.10.</doc> <constructor name="new" c:identifier="gtk_paper_size_new" version="2.10"> <doc xml:space="preserve">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 gtk_paper_size_get_default().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPaperSize, use gtk_paper_size_free() to free it</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a paper size name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_custom" c:identifier="gtk_paper_size_new_custom" version="2.10"> <doc xml:space="preserve">Creates a new #GtkPaperSize object with the given parameters.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPaperSize object, use gtk_paper_size_free() to free it</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the paper name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="display_name" transfer-ownership="none"> <doc xml:space="preserve">the human-readable name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the paper width, in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the paper height, in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for @width and @height. not %GTK_UNIT_NONE.</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </constructor> <constructor name="new_from_gvariant" c:identifier="gtk_paper_size_new_from_gvariant" version="3.22"> <doc xml:space="preserve">Deserialize a paper size from an a{sv} variant in the format produced by gtk_paper_size_to_gvariant().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <parameter name="variant" transfer-ownership="none"> <doc xml:space="preserve">an a{sv} #GVariant</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </constructor> <constructor name="new_from_ipp" c:identifier="gtk_paper_size_new_from_ipp" version="3.16"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPaperSize, use gtk_paper_size_free() to free it</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <parameter name="ipp_name" transfer-ownership="none"> <doc xml:space="preserve">an IPP paper name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the paper width, in points</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the paper height in points</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <constructor name="new_from_key_file" c:identifier="gtk_paper_size_new_from_key_file" version="2.12" throws="1"> <doc xml:space="preserve">Reads a paper size from the group @group_name in the key file @key_file.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPaperSize object with the restored paper size, or %NULL if an error occurred</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <parameter name="key_file" transfer-ownership="none"> <doc xml:space="preserve">the #GKeyFile to retrieve the papersize from</doc> <type name="GLib.KeyFile" c:type="GKeyFile*"/> </parameter> <parameter name="group_name" transfer-ownership="none"> <doc xml:space="preserve">the name ofthe group in the key file to read, or %NULL to read the first group</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_ppd" c:identifier="gtk_paper_size_new_from_ppd" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPaperSize, use gtk_paper_size_free() to free it</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <parameter name="ppd_name" transfer-ownership="none"> <doc xml:space="preserve">a PPD paper name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="ppd_display_name" transfer-ownership="none"> <doc xml:space="preserve">the corresponding human-readable name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the paper width, in points</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the paper height in points</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <method name="copy" c:identifier="gtk_paper_size_copy" version="2.10"> <doc xml:space="preserve">Copies an existing #GtkPaperSize.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of @other</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <instance-parameter name="other" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_paper_size_free" version="2.10"> <doc xml:space="preserve">Free the given #GtkPaperSize object.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> </parameters> </method> <method name="get_default_bottom_margin" c:identifier="gtk_paper_size_get_default_bottom_margin" version="2.10"> <doc xml:space="preserve">Gets the default bottom margin for the #GtkPaperSize.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default bottom margin</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value, not %GTK_UNIT_NONE</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_default_left_margin" c:identifier="gtk_paper_size_get_default_left_margin" version="2.10"> <doc xml:space="preserve">Gets the default left margin for the #GtkPaperSize.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default left margin</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value, not %GTK_UNIT_NONE</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_default_right_margin" c:identifier="gtk_paper_size_get_default_right_margin" version="2.10"> <doc xml:space="preserve">Gets the default right margin for the #GtkPaperSize.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default right margin</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value, not %GTK_UNIT_NONE</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_default_top_margin" c:identifier="gtk_paper_size_get_default_top_margin" version="2.10"> <doc xml:space="preserve">Gets the default top margin for the #GtkPaperSize.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default top margin</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value, not %GTK_UNIT_NONE</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_display_name" c:identifier="gtk_paper_size_get_display_name" version="2.10"> <doc xml:space="preserve">Gets the human-readable name of the #GtkPaperSize.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the human-readable name of @size</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> </parameters> </method> <method name="get_height" c:identifier="gtk_paper_size_get_height" version="2.10"> <doc xml:space="preserve">Gets the paper height of the #GtkPaperSize, in units of @unit.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the paper height</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value, not %GTK_UNIT_NONE</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_name" c:identifier="gtk_paper_size_get_name" version="2.10"> <doc xml:space="preserve">Gets the name of the #GtkPaperSize.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name of @size</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> </parameters> </method> <method name="get_ppd_name" c:identifier="gtk_paper_size_get_ppd_name" version="2.10"> <doc xml:space="preserve">Gets the PPD name of the #GtkPaperSize, which may be %NULL.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the PPD name of @size</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> </parameters> </method> <method name="get_width" c:identifier="gtk_paper_size_get_width" version="2.10"> <doc xml:space="preserve">Gets the paper width of the #GtkPaperSize, in units of @unit.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the paper width</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value, not %GTK_UNIT_NONE</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="is_custom" c:identifier="gtk_paper_size_is_custom"> <doc xml:space="preserve">Returns %TRUE if @size is not a standard paper size.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @size is a custom paper size.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> </parameters> </method> <method name="is_equal" c:identifier="gtk_paper_size_is_equal" version="2.10"> <doc xml:space="preserve">Compares two #GtkPaperSize objects.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @size1 and @size2 represent the same paper size</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="size1" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="size2" transfer-ownership="none"> <doc xml:space="preserve">another #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </parameter> </parameters> </method> <method name="is_ipp" c:identifier="gtk_paper_size_is_ipp"> <doc xml:space="preserve">Returns %TRUE if @size is an IPP standard paper size.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @size is not an IPP custom paper size.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> </parameters> </method> <method name="set_size" c:identifier="gtk_paper_size_set_size" version="2.10"> <doc xml:space="preserve">Changes the dimensions of a @size to @width x @height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a custom #GtkPaperSize object</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the new width in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the new height in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for @width and @height</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="to_gvariant" c:identifier="gtk_paper_size_to_gvariant" version="3.22"> <doc xml:space="preserve">Serialize a paper size to an a{sv} variant.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new, floating, #GVariant</doc> <type name="GLib.Variant" c:type="GVariant*"/> </return-value> <parameters> <instance-parameter name="paper_size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> </parameters> </method> <method name="to_key_file" c:identifier="gtk_paper_size_to_key_file" version="2.12"> <doc xml:space="preserve">This function adds the paper size from @size to @key_file.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPaperSize</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </instance-parameter> <parameter name="key_file" transfer-ownership="none"> <doc xml:space="preserve">the #GKeyFile to save the paper size to</doc> <type name="GLib.KeyFile" c:type="GKeyFile*"/> </parameter> <parameter name="group_name" transfer-ownership="none"> <doc xml:space="preserve">the group to add the settings to in @key_file</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <function name="get_default" c:identifier="gtk_paper_size_get_default" version="2.10"> <doc xml:space="preserve">Returns the name of the default paper size, which depends on the current locale.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name of the default paper size. The string is owned by GTK+ and should not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> </function> <function name="get_paper_sizes" c:identifier="gtk_paper_size_get_paper_sizes" version="2.12"> <doc xml:space="preserve">Creates a list of known paper sizes.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated list of newly allocated #GtkPaperSize objects</doc> <type name="GLib.List" c:type="GList*"> <type name="PaperSize"/> </type> </return-value> <parameters> <parameter name="include_custom" transfer-ownership="none"> <doc xml:space="preserve">whether to include custom paper sizes as defined in the page setup dialog</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> </record> <enumeration name="PathPriorityType" deprecated="1" deprecated-version="3.0" glib:type-name="GtkPathPriorityType" glib:get-type="gtk_path_priority_type_get_type" c:type="GtkPathPriorityType"> <doc xml:space="preserve">Priorities for path lookups. See also gtk_binding_set_add_path().</doc> <member name="lowest" value="0" c:identifier="GTK_PATH_PRIO_LOWEST" glib:nick="lowest"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="gtk" value="4" c:identifier="GTK_PATH_PRIO_GTK" glib:nick="gtk"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="application" value="8" c:identifier="GTK_PATH_PRIO_APPLICATION" glib:nick="application"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="theme" value="10" c:identifier="GTK_PATH_PRIO_THEME" glib:nick="theme"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="rc" value="12" c:identifier="GTK_PATH_PRIO_RC" glib:nick="rc"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="highest" value="15" c:identifier="GTK_PATH_PRIO_HIGHEST" glib:nick="highest"> <doc xml:space="preserve">Deprecated</doc> </member> </enumeration> <enumeration name="PathType" deprecated="1" deprecated-version="3.0" glib:type-name="GtkPathType" glib:get-type="gtk_path_type_get_type" c:type="GtkPathType"> <doc xml:space="preserve">Widget path types. See also gtk_binding_set_add_path().</doc> <member name="widget" value="0" c:identifier="GTK_PATH_WIDGET" glib:nick="widget"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="widget_class" value="1" c:identifier="GTK_PATH_WIDGET_CLASS" glib:nick="widget-class"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="class" value="2" c:identifier="GTK_PATH_CLASS" glib:nick="class"> <doc xml:space="preserve">Deprecated</doc> </member> </enumeration> <bitfield name="PlacesOpenFlags" glib:type-name="GtkPlacesOpenFlags" glib:get-type="gtk_places_open_flags_get_type" c:type="GtkPlacesOpenFlags"> <doc xml:space="preserve">These flags serve two purposes. First, the application can call gtk_places_sidebar_set_open_flags() using these flags as a bitmask. This tells the sidebar that the application is able to open folders selected from the sidebar in various ways, for example, in new tabs or in new windows in addition to the normal mode. Second, when one of these values gets passed back to the application in the #GtkPlacesSidebar::open-location signal, it means that the application should open the selected location in the normal way, in a new tab, or in a new window. The sidebar takes care of determining the desired way to open the location, based on the modifier keys that the user is pressing at the time the selection is made. If the application never calls gtk_places_sidebar_set_open_flags(), then the sidebar will only use #GTK_PLACES_OPEN_NORMAL in the #GtkPlacesSidebar::open-location signal. This is the default mode of operation.</doc> <member name="normal" value="1" c:identifier="GTK_PLACES_OPEN_NORMAL" glib:nick="normal"> <doc xml:space="preserve">This is the default mode that #GtkPlacesSidebar uses if no other flags are specified. It indicates that the calling application should open the selected location in the normal way, for example, in the folder view beside the sidebar.</doc> </member> <member name="new_tab" value="2" c:identifier="GTK_PLACES_OPEN_NEW_TAB" glib:nick="new-tab"> <doc xml:space="preserve">When passed to gtk_places_sidebar_set_open_flags(), this indicates that the application can open folders selected from the sidebar in new tabs. This value will be passed to the #GtkPlacesSidebar::open-location signal when the user selects that a location be opened in a new tab instead of in the standard fashion.</doc> </member> <member name="new_window" value="4" c:identifier="GTK_PLACES_OPEN_NEW_WINDOW" glib:nick="new-window"> <doc xml:space="preserve">Similar to @GTK_PLACES_OPEN_NEW_TAB, but indicates that the application can open folders in new windows.</doc> </member> </bitfield> <class name="PlacesSidebar" c:symbol-prefix="places_sidebar" c:type="GtkPlacesSidebar" parent="ScrolledWindow" glib:type-name="GtkPlacesSidebar" glib:get-type="gtk_places_sidebar_get_type" glib:type-struct="PlacesSidebarClass"> <doc xml:space="preserve">#GtkPlacesSidebar is a widget that displays a list of frequently-used places in the file system: the userâs home directory, the userâs bookmarks, and volumes and drives. This widget is used as a sidebar in #GtkFileChooser and may be used by file managers and similar programs. The places sidebar displays drives and volumes, and will automatically mount or unmount them when the user selects them. Applications can hook to various signals in the places sidebar to customize its behavior. For example, they can add extra commands to the context menu of the sidebar. While bookmarks are completely in control of the user, the places sidebar also allows individual applications to provide extra shortcut folders that are unique to each application. For example, a Paint program may want to add a shortcut for a Clipart folder. You can do this with gtk_places_sidebar_add_shortcut(). To make use of the places sidebar, an application at least needs to connect to the #GtkPlacesSidebar::open-location signal. This is emitted when the user selects in the sidebar a location to open. The application should also call gtk_places_sidebar_set_location() when it changes the currently-viewed location. # CSS nodes GtkPlacesSidebar uses a single CSS node with name placessidebar and style class .sidebar. Among the children of the places sidebar, the following style classes can be used: - .sidebar-new-bookmark-row for the 'Add new bookmark' row - .sidebar-placeholder-row for a row that is a placeholder - .has-open-popup when a popup is open for a row</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_places_sidebar_new" version="3.10"> <doc xml:space="preserve">Creates a new #GtkPlacesSidebar widget. The application should connect to at least the #GtkPlacesSidebar::open-location signal to be notified when the user makes a selection in the sidebar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkPlacesSidebar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="add_shortcut" c:identifier="gtk_places_sidebar_add_shortcut" version="3.10"> <doc xml:space="preserve">Applications may want to present some folders in the places sidebar if they could be immediately useful to users. For example, a drawing program could add a â/usr/share/clipartâ location when the sidebar is being used in an âInsert Clipartâ dialog box. This function adds the specified @location to a special place for immutable shortcuts. The shortcuts are application-specific; they are not shared across applications, and they are not persistent. If this function is called multiple times with different locations, then they are added to the sidebarâs list in the same order as the function is called.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">location to add as an application-specific shortcut</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </method> <method name="get_local_only" c:identifier="gtk_places_sidebar_get_local_only" version="3.12"> <doc xml:space="preserve">Returns the value previously set with gtk_places_sidebar_set_local_only().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sidebar will only show local files.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_location" c:identifier="gtk_places_sidebar_get_location" version="3.10"> <doc xml:space="preserve">Gets the currently selected location in the @sidebar. This can be %NULL when nothing is selected, for example, when gtk_places_sidebar_set_location() has been called with a location that is not among the sidebarâs list of places to show. You can use this function to get the selection in the @sidebar. Also, if you connect to the #GtkPlacesSidebar::populate-popup signal, you can use this function to get the location that is being referred to during the callbacks for your menu items.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GFile with the selected location, or %NULL if nothing is visually selected.</doc> <type name="Gio.File" c:type="GFile*"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_nth_bookmark" c:identifier="gtk_places_sidebar_get_nth_bookmark" version="3.10"> <doc xml:space="preserve">This function queries the bookmarks added by the user to the places sidebar, and returns one of them. This function is used by #GtkFileChooser to implement the âAlt-1â, âAlt-2â, etc. shortcuts, which activate the cooresponding bookmark.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">The bookmark specified by the index @n, or %NULL if no such index exist. Note that the indices start at 0, even though the file chooser starts them with the keyboard shortcut "Alt-1".</doc> <type name="Gio.File" c:type="GFile*"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="n" transfer-ownership="none"> <doc xml:space="preserve">index of the bookmark to query</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_open_flags" c:identifier="gtk_places_sidebar_get_open_flags" version="3.10"> <doc xml:space="preserve">Gets the open flags.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkPlacesOpenFlags of @sidebar</doc> <type name="PlacesOpenFlags" c:type="GtkPlacesOpenFlags"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPlacesSidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_show_connect_to_server" c:identifier="gtk_places_sidebar_get_show_connect_to_server" deprecated="1" deprecated-version="3.18"> <doc xml:space="preserve">Returns the value previously set with gtk_places_sidebar_set_show_connect_to_server()</doc> <doc-deprecated xml:space="preserve">It is recommended to group this functionality with the drives and network location under the new 'Other Location' item</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sidebar will display a âConnect to Serverâ item.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_show_desktop" c:identifier="gtk_places_sidebar_get_show_desktop" version="3.10"> <doc xml:space="preserve">Returns the value previously set with gtk_places_sidebar_set_show_desktop()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sidebar will display a builtin shortcut to the desktop folder.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_show_enter_location" c:identifier="gtk_places_sidebar_get_show_enter_location" version="3.14"> <doc xml:space="preserve">Returns the value previously set with gtk_places_sidebar_set_show_enter_location()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sidebar will display an âEnter Locationâ item.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_show_other_locations" c:identifier="gtk_places_sidebar_get_show_other_locations" version="3.18"> <doc xml:space="preserve">Returns the value previously set with gtk_places_sidebar_set_show_other_locations()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sidebar will display an âOther Locationsâ item.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_show_recent" c:identifier="gtk_places_sidebar_get_show_recent" version="3.18"> <doc xml:space="preserve">Returns the value previously set with gtk_places_sidebar_set_show_recent()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sidebar will display a builtin shortcut for recent files</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_show_starred_location" c:identifier="gtk_places_sidebar_get_show_starred_location" version="3.22.26"> <doc xml:space="preserve">Returns the value previously set with gtk_places_sidebar_set_show_starred_location()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sidebar will display a Starred item.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="get_show_trash" c:identifier="gtk_places_sidebar_get_show_trash" version="3.18"> <doc xml:space="preserve">Returns the value previously set with gtk_places_sidebar_set_show_trash()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sidebar will display a âTrashâ item.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="list_shortcuts" c:identifier="gtk_places_sidebar_list_shortcuts" version="3.10"> <doc xml:space="preserve">Gets the list of shortcuts.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve"> A #GSList of #GFile of the locations that have been added as application-specific shortcuts with gtk_places_sidebar_add_shortcut(). To free this list, you can use |[<!-- language="C" --> g_slist_free_full (list, (GDestroyNotify) g_object_unref); ]|</doc> <type name="GLib.SList" c:type="GSList*"> <type name="Gio.File"/> </type> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> </parameters> </method> <method name="remove_shortcut" c:identifier="gtk_places_sidebar_remove_shortcut" version="3.10"> <doc xml:space="preserve">Removes an application-specific shortcut that has been previously been inserted with gtk_places_sidebar_add_shortcut(). If the @location is not a shortcut in the sidebar, then nothing is done.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">location to remove</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </method> <method name="set_drop_targets_visible" c:identifier="gtk_places_sidebar_set_drop_targets_visible" version="3.18"> <doc xml:space="preserve">Make the GtkPlacesSidebar show drop targets, so it can show the available drop targets and a "new bookmark" row. This improves the Drag-and-Drop experience of the user and allows applications to show all available drop targets at once. This needs to be called when the application is aware of an ongoing drag that might target the sidebar. The drop-targets-visible state will be unset automatically if the drag finishes in the GtkPlacesSidebar. You only need to unset the state when the drag ends on some other widget on your application.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar.</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">whether to show the valid targets or not.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">drag context used to ask the source about the action that wants to perform, so hints are more accurate.</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </method> <method name="set_local_only" c:identifier="gtk_places_sidebar_set_local_only" version="3.12"> <doc xml:space="preserve">Sets whether the @sidebar should only show local files.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="local_only" transfer-ownership="none"> <doc xml:space="preserve">whether to show only local files</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_location" c:identifier="gtk_places_sidebar_set_location" version="3.10"> <doc xml:space="preserve">Sets the location that is being shown in the widgets surrounding the @sidebar, for example, in a folder view in a file manager. In turn, the @sidebar will highlight that location if it is being shown in the list of places, or it will unhighlight everything if the @location is not among the places in the list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="location" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">location to select, or %NULL for no current path</doc> <type name="Gio.File" c:type="GFile*"/> </parameter> </parameters> </method> <method name="set_open_flags" c:identifier="gtk_places_sidebar_set_open_flags" version="3.10"> <doc xml:space="preserve">Sets the way in which the calling application can open new locations from the places sidebar. For example, some applications only open locations âdirectlyâ into their main view, while others may support opening locations in a new notebook tab or a new window. This function is used to tell the places @sidebar about the ways in which the application can open new locations, so that the sidebar can display (or not) the âOpen in new tabâ and âOpen in new windowâ menu items as appropriate. When the #GtkPlacesSidebar::open-location signal is emitted, its flags argument will be set to one of the @flags that was passed in gtk_places_sidebar_set_open_flags(). Passing 0 for @flags will cause #GTK_PLACES_OPEN_NORMAL to always be sent to callbacks for the âopen-locationâ signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">Bitmask of modes in which the calling application can open locations</doc> <type name="PlacesOpenFlags" c:type="GtkPlacesOpenFlags"/> </parameter> </parameters> </method> <method name="set_show_connect_to_server" c:identifier="gtk_places_sidebar_set_show_connect_to_server" version="3.10" deprecated="1" deprecated-version="3.18"> <doc xml:space="preserve">Sets whether the @sidebar should show an item for connecting to a network server; this is off by default. An application may want to turn this on if it implements a way for the user to connect to network servers directly. If you enable this, you should connect to the #GtkPlacesSidebar::show-connect-to-server signal.</doc> <doc-deprecated xml:space="preserve">It is recommended to group this functionality with the drives and network location under the new 'Other Location' item</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="show_connect_to_server" transfer-ownership="none"> <doc xml:space="preserve">whether to show an item for the Connect to Server command</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_desktop" c:identifier="gtk_places_sidebar_set_show_desktop" version="3.10"> <doc xml:space="preserve">Sets whether the @sidebar should show an item for the Desktop folder. The default value for this option is determined by the desktop environment and the userâs configuration, but this function can be used to override it on a per-application basis.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="show_desktop" transfer-ownership="none"> <doc xml:space="preserve">whether to show an item for the Desktop folder</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_enter_location" c:identifier="gtk_places_sidebar_set_show_enter_location" version="3.14"> <doc xml:space="preserve">Sets whether the @sidebar should show an item for entering a location; this is off by default. An application may want to turn this on if manually entering URLs is an expected user action. If you enable this, you should connect to the #GtkPlacesSidebar::show-enter-location signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="show_enter_location" transfer-ownership="none"> <doc xml:space="preserve">whether to show an item to enter a location</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_other_locations" c:identifier="gtk_places_sidebar_set_show_other_locations" version="3.18"> <doc xml:space="preserve">Sets whether the @sidebar should show an item for the application to show an Other Locations view; this is off by default. When set to %TRUE, persistent devices such as hard drives are hidden, otherwise they are shown in the sidebar. An application may want to turn this on if it implements a way for the user to see and interact with drives and network servers directly. If you enable this, you should connect to the #GtkPlacesSidebar::show-other-locations signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="show_other_locations" transfer-ownership="none"> <doc xml:space="preserve">whether to show an item for the Other Locations view</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_recent" c:identifier="gtk_places_sidebar_set_show_recent" version="3.18"> <doc xml:space="preserve">Sets whether the @sidebar should show an item for recent files. The default value for this option is determined by the desktop environment, but this function can be used to override it on a per-application basis.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="show_recent" transfer-ownership="none"> <doc xml:space="preserve">whether to show an item for recent files</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_starred_location" c:identifier="gtk_places_sidebar_set_show_starred_location" version="3.22.26"> <doc xml:space="preserve">If you enable this, you should connect to the #GtkPlacesSidebar::show-starred-location signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="show_starred_location" transfer-ownership="none"> <doc xml:space="preserve">whether to show an item for Starred files</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_trash" c:identifier="gtk_places_sidebar_set_show_trash" version="3.18"> <doc xml:space="preserve">Sets whether the @sidebar should show an item for the Trash location.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a places sidebar</doc> <type name="PlacesSidebar" c:type="GtkPlacesSidebar*"/> </instance-parameter> <parameter name="show_trash" transfer-ownership="none"> <doc xml:space="preserve">whether to show an item for the Trash location</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="local-only" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="location" writable="1" transfer-ownership="none"> <type name="Gio.File"/> </property> <property name="open-flags" writable="1" transfer-ownership="none"> <type name="PlacesOpenFlags"/> </property> <property name="populate-all" version="3.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If :populate-all is %TRUE, the #GtkPlacesSidebar::populate-popup signal is also emitted for popovers.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-connect-to-server" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-desktop" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-enter-location" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-other-locations" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-recent" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-starred-location" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-trash" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <glib:signal name="drag-action-ask" when="last" version="3.10"> <doc xml:space="preserve">The places sidebar emits this signal when it needs to ask the application to pop up a menu to ask the user for which drag action to perform.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the final drag action that the sidebar should pass to the drag side of the drag-and-drop operation.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">Possible drag actions that need to be asked for.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-action-requested" when="last" version="3.10"> <doc xml:space="preserve">When the user starts a drag-and-drop operation and the sidebar needs to ask the application for which drag action to perform, then the sidebar will emit this signal. The application can evaluate the @context for customary actions, or it can check the type of the files indicated by @source_file_list against the possible actions for the destination @dest_file. The drag action to use must be the return value of the signal handler.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The drag action to use, for example, #GDK_ACTION_COPY or #GDK_ACTION_MOVE, or 0 if no action is allowed here (i.e. drops are not allowed in the specified @dest_file).</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">#GdkDragContext with information about the drag operation</doc> <type name="Gdk.DragContext"/> </parameter> <parameter name="dest_file" transfer-ownership="none"> <doc xml:space="preserve">#GFile with the tentative location that is being hovered for a drop</doc> <type name="Gio.File"/> </parameter> <parameter name="source_file_list" transfer-ownership="none"> <doc xml:space="preserve"> List of #GFile that are being dragged</doc> <type name="GLib.List" c:type="gpointer"> <type name="Gio.File"/> </type> </parameter> </parameters> </glib:signal> <glib:signal name="drag-perform-drop" when="first" version="3.10"> <doc xml:space="preserve">The places sidebar emits this signal when the user completes a drag-and-drop operation and one of the sidebar's items is the destination. This item is in the @dest_file, and the @source_file_list has the list of files that are dropped into it and which should be copied/moved/etc. based on the specified @action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="dest_file" transfer-ownership="none"> <doc xml:space="preserve">Destination #GFile.</doc> <type name="Gio.File"/> </parameter> <parameter name="source_file_list" transfer-ownership="none"> <doc xml:space="preserve"> #GList of #GFile that got dropped.</doc> <type name="GLib.List" c:type="gpointer"> <type name="Gio.File"/> </type> </parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">Drop action to perform.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="mount" when="first" version="3.20"> <doc xml:space="preserve">The places sidebar emits this signal when it starts a new operation because the user clicked on some location that needs mounting. In this way the application using the #GtkPlacesSidebar can track the progress of the operation and, for example, show a notification.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="mount_operation" transfer-ownership="none"> <doc xml:space="preserve">the #GMountOperation that is going to start.</doc> <type name="Gio.MountOperation"/> </parameter> </parameters> </glib:signal> <glib:signal name="open-location" when="first" version="3.10"> <doc xml:space="preserve">The places sidebar emits this signal when the user selects a location in it. The calling application should display the contents of that location; for example, a file manager should show a list of files in the specified location.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">#GFile to which the caller should switch.</doc> <type name="Gio.File"/> </parameter> <parameter name="open_flags" transfer-ownership="none"> <doc xml:space="preserve">a single value from #GtkPlacesOpenFlags specifying how the @location should be opened.</doc> <type name="PlacesOpenFlags"/> </parameter> </parameters> </glib:signal> <glib:signal name="populate-popup" when="first" version="3.10"> <doc xml:space="preserve">The places sidebar emits this signal when the user invokes a contextual popup on one of its items. In the signal handler, the application may add extra items to the menu as appropriate. For example, a file manager may want to add a "Properties" command to the menu. It is not necessary to store the @selected_item for each menu item; during their callbacks, the application can use gtk_places_sidebar_get_location() to get the file to which the item refers. The @selected_item argument may be %NULL in case the selection refers to a volume. In this case, @selected_volume will be non-%NULL. In this case, the calling application will have to g_object_ref() the @selected_volume and keep it around to use it in the callback. The @container and all its contents are destroyed after the user dismisses the popup. The popup is re-created (and thus, this signal is emitted) every time the user activates the contextual menu. Before 3.18, the @container always was a #GtkMenu, and you were expected to add your items as #GtkMenuItems. Since 3.18, the popup may be implemented as a #GtkPopover, in which case @container will be something else, e.g. a #GtkBox, to which you may add #GtkModelButtons or other widgets, such as #GtkEntries, #GtkSpinButtons, etc. If your application can deal with this situation, you can set #GtkPlacesSidebar::populate-all to %TRUE to request that this signal is emitted for populating popovers as well.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="container" transfer-ownership="none"> <doc xml:space="preserve">a #GtkMenu or another #GtkContainer</doc> <type name="Widget"/> </parameter> <parameter name="selected_item" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GFile with the item to which the popup should refer, or %NULL in the case of a @selected_volume.</doc> <type name="Gio.File"/> </parameter> <parameter name="selected_volume" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GVolume if the selected item is a volume, or %NULL if it is a file.</doc> <type name="Gio.Volume"/> </parameter> </parameters> </glib:signal> <glib:signal name="show-connect-to-server" when="first" deprecated="1" deprecated-version="3.18"> <doc xml:space="preserve">The places sidebar emits this signal when it needs the calling application to present an way to connect directly to a network server. For example, the application may bring up a dialog box asking for a URL like "sftp://ftp.example.com". It is up to the application to create the corresponding mount by using, for example, g_file_mount_enclosing_volume().</doc> <doc-deprecated xml:space="preserve">use the #GtkPlacesSidebar::show-other-locations signal to connect to network servers.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="show-enter-location" when="first" version="3.14"> <doc xml:space="preserve">The places sidebar emits this signal when it needs the calling application to present an way to directly enter a location. For example, the application may bring up a dialog box asking for a URL like "http://http.example.com".</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="show-error-message" when="first" version="3.10"> <doc xml:space="preserve">The places sidebar emits this signal when it needs the calling application to present an error message. Most of these messages refer to mounting or unmounting media, for example, when a drive cannot be started for some reason.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="primary" transfer-ownership="none"> <doc xml:space="preserve">primary message with a summary of the error to show.</doc> <type name="utf8" c:type="gchar*"/> </parameter> <parameter name="secondary" transfer-ownership="none"> <doc xml:space="preserve">secondary message with details of the error to show.</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="show-other-locations" when="first" version="3.18" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">The places sidebar emits this signal when it needs the calling application to present a way to show other locations e.g. drives and network access points. For example, the application may bring up a page showing persistent volumes and discovered network addresses.</doc> <doc-deprecated xml:space="preserve">use the #GtkPlacesSidebar::show-other-locations-with-flags which includes the open flags in order to allow the user to specify to open in a new tab or window, in a similar way than #GtkPlacesSidebar::open-location</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="show-other-locations-with-flags" when="first" version="3.20"> <doc xml:space="preserve">The places sidebar emits this signal when it needs the calling application to present a way to show other locations e.g. drives and network access points. For example, the application may bring up a page showing persistent volumes and discovered network addresses.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="open_flags" transfer-ownership="none"> <doc xml:space="preserve">a single value from #GtkPlacesOpenFlags specifying how it should be opened.</doc> <type name="PlacesOpenFlags"/> </parameter> </parameters> </glib:signal> <glib:signal name="show-starred-location" when="first" version="3.22.26"> <doc xml:space="preserve">The places sidebar emits this signal when it needs the calling application to present a way to show the starred files. In GNOME, starred files are implemented by setting the nao:predefined-tag-favorite tag in the tracker database.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="PlacesOpenFlags"/> </parameter> </parameters> </glib:signal> <glib:signal name="unmount" when="first" version="3.20"> <doc xml:space="preserve">The places sidebar emits this signal when it starts a new operation because the user for example ejected some drive or unmounted a mount. In this way the application using the #GtkPlacesSidebar can track the progress of the operation and, for example, show a notification.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="mount_operation" transfer-ownership="none"> <doc xml:space="preserve">the #GMountOperation that is going to start.</doc> <type name="Gio.MountOperation"/> </parameter> </parameters> </glib:signal> </class> <record name="PlacesSidebarClass" c:type="GtkPlacesSidebarClass" disguised="1" glib:is-gtype-struct-for="PlacesSidebar"> </record> <class name="Plug" c:symbol-prefix="plug" c:type="GtkPlug" parent="Window" glib:type-name="GtkPlug" glib:get-type="gtk_plug_get_type" glib:type-struct="PlugClass"> <doc xml:space="preserve">Together with #GtkSocket, #GtkPlug provides the ability to embed widgets from one process into another process in a fashion that is transparent to the user. One process creates a #GtkSocket widget and passes the ID of that widgetâs window to the other process, which then creates a #GtkPlug with that window ID. Any widgets contained in the #GtkPlug then will appear inside the first applicationâs window. The communication between a #GtkSocket and a #GtkPlug follows the [XEmbed Protocol](http://www.freedesktop.org/Standards/xembed-spec). This protocol has also been implemented in other toolkits, e.g. Qt, allowing the same level of integration when embedding a Qt widget in GTK+ or vice versa. The #GtkPlug and #GtkSocket widgets are only available when GTK+ is compiled for the X11 platform and %GDK_WINDOWING_X11 is defined. They can only be used on a #GdkX11Display. To use #GtkPlug and #GtkSocket, you need to include the `gtk/gtkx.h` header.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_plug_new"> <doc xml:space="preserve">Creates a new plug widget inside the #GtkSocket identified by @socket_id. If @socket_id is 0, the plug is left âunpluggedâ and can later be plugged into a #GtkSocket by gtk_socket_add_id().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkPlug widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="socket_id" transfer-ownership="none"> <doc xml:space="preserve">the window ID of the socket, or 0.</doc> <type name="xlib.Window" c:type="Window"/> </parameter> </parameters> </constructor> <constructor name="new_for_display" c:identifier="gtk_plug_new_for_display" version="2.2"> <doc xml:space="preserve">Create a new plug widget inside the #GtkSocket identified by socket_id.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkPlug widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="display" transfer-ownership="none"> <doc xml:space="preserve">the #GdkDisplay on which @socket_id is displayed</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> <parameter name="socket_id" transfer-ownership="none"> <doc xml:space="preserve">the XID of the socketâs window.</doc> <type name="xlib.Window" c:type="Window"/> </parameter> </parameters> </constructor> <virtual-method name="embedded"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="plug" transfer-ownership="none"> <type name="Plug" c:type="GtkPlug*"/> </instance-parameter> </parameters> </virtual-method> <method name="construct" c:identifier="gtk_plug_construct"> <doc xml:space="preserve">Finish the initialization of @plug for a given #GtkSocket identified by @socket_id. This function will generally only be used by classes deriving from #GtkPlug.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="plug" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPlug.</doc> <type name="Plug" c:type="GtkPlug*"/> </instance-parameter> <parameter name="socket_id" transfer-ownership="none"> <doc xml:space="preserve">the XID of the socketâs window.</doc> <type name="xlib.Window" c:type="Window"/> </parameter> </parameters> </method> <method name="construct_for_display" c:identifier="gtk_plug_construct_for_display" version="2.2"> <doc xml:space="preserve">Finish the initialization of @plug for a given #GtkSocket identified by @socket_id which is currently displayed on @display. This function will generally only be used by classes deriving from #GtkPlug.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="plug" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPlug.</doc> <type name="Plug" c:type="GtkPlug*"/> </instance-parameter> <parameter name="display" transfer-ownership="none"> <doc xml:space="preserve">the #GdkDisplay associated with @socket_idâs #GtkSocket.</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> <parameter name="socket_id" transfer-ownership="none"> <doc xml:space="preserve">the XID of the socketâs window.</doc> <type name="xlib.Window" c:type="Window"/> </parameter> </parameters> </method> <method name="get_embedded" c:identifier="gtk_plug_get_embedded" version="2.14"> <doc xml:space="preserve">Determines whether the plug is embedded in a socket.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the plug is embedded in a socket</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="plug" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPlug</doc> <type name="Plug" c:type="GtkPlug*"/> </instance-parameter> </parameters> </method> <method name="get_id" c:identifier="gtk_plug_get_id"> <doc xml:space="preserve">Gets the window ID of a #GtkPlug widget, which can then be used to embed this window inside another window, for instance with gtk_socket_add_id().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the window ID for the plug</doc> <type name="xlib.Window" c:type="Window"/> </return-value> <parameters> <instance-parameter name="plug" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPlug.</doc> <type name="Plug" c:type="GtkPlug*"/> </instance-parameter> </parameters> </method> <method name="get_socket_window" c:identifier="gtk_plug_get_socket_window" version="2.14"> <doc xml:space="preserve">Retrieves the socket the plug is embedded in.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the window of the socket, or %NULL</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="plug" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPlug</doc> <type name="Plug" c:type="GtkPlug*"/> </instance-parameter> </parameters> </method> <property name="embedded" version="2.12" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the plug is embedded in a socket.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="socket-window" version="2.14" transfer-ownership="none"> <doc xml:space="preserve">The window of the socket the plug is embedded in.</doc> <type name="Gdk.Window"/> </property> <field name="window"> <type name="Window" c:type="GtkWindow"/> </field> <field name="priv"> <type name="PlugPrivate" c:type="GtkPlugPrivate*"/> </field> <glib:signal name="embedded" when="last"> <doc xml:space="preserve">Gets emitted when the plug becomes embedded in a socket.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="PlugClass" c:type="GtkPlugClass" glib:is-gtype-struct-for="Plug"> <field name="parent_class"> <type name="WindowClass" c:type="GtkWindowClass"/> </field> <field name="embedded"> <callback name="embedded"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="plug" transfer-ownership="none"> <type name="Plug" c:type="GtkPlug*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="PlugPrivate" c:type="GtkPlugPrivate" disguised="1"> </record> <enumeration name="PolicyType" glib:type-name="GtkPolicyType" glib:get-type="gtk_policy_type_get_type" c:type="GtkPolicyType"> <doc xml:space="preserve">Determines how the size should be computed to achieve the one of the visibility mode for the scrollbars.</doc> <member name="always" value="0" c:identifier="GTK_POLICY_ALWAYS" glib:nick="always"> <doc xml:space="preserve">The scrollbar is always visible. The view size is independent of the content.</doc> </member> <member name="automatic" value="1" c:identifier="GTK_POLICY_AUTOMATIC" glib:nick="automatic"> <doc xml:space="preserve">The scrollbar will appear and disappear as necessary. For example, when all of a #GtkTreeView can not be seen.</doc> </member> <member name="never" value="2" c:identifier="GTK_POLICY_NEVER" glib:nick="never"> <doc xml:space="preserve">The scrollbar should never appear. In this mode the content determines the size.</doc> </member> <member name="external" value="3" c:identifier="GTK_POLICY_EXTERNAL" glib:nick="external"> <doc xml:space="preserve">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. Since: 3.16</doc> </member> </enumeration> <class name="Popover" c:symbol-prefix="popover" c:type="GtkPopover" parent="Bin" glib:type-name="GtkPopover" glib:get-type="gtk_popover_get_type" glib:type-struct="PopoverClass"> <doc xml:space="preserve">GtkPopover is a bubble-like context window, primarily meant to provide context-dependent information or options. Popovers are attached to a widget, passed at construction time on gtk_popover_new(), or updated afterwards through gtk_popover_set_relative_to(), by default they will point to the whole widget area, although this behavior can be changed through gtk_popover_set_pointing_to(). The position of a popover relative to the widget it is attached to can also be changed through gtk_popover_set_position(). By default, #GtkPopover performs a GTK+ grab, in order to ensure input events get redirected to it while it is shown, and also so the popover is dismissed in the expected situations (clicks outside the popover, or the Esc key being pressed). If no such modal behavior is desired on a popover, gtk_popover_set_modal() may be called on it to tweak its behavior. ## GtkPopover as menu replacement GtkPopover is often used to replace menus. To facilitate this, it supports being populated from a #GMenuModel, using gtk_popover_new_from_model(). In addition to all the regular menu model features, this function supports rendering sections in the model in a more compact form, as a row of icon buttons instead of menu items. To use this rendering, set the âdisplay-hintâ attribute of the section to âhorizontal-buttonsâ and set the icons of your items with the âverb-iconâ attribute. |[ <section> <attribute name="display-hint">horizontal-buttons</attribute> <item> <attribute name="label">Cut</attribute> <attribute name="action">app.cut</attribute> <attribute name="verb-icon">edit-cut-symbolic</attribute> </item> <item> <attribute name="label">Copy</attribute> <attribute name="action">app.copy</attribute> <attribute name="verb-icon">edit-copy-symbolic</attribute> </item> <item> <attribute name="label">Paste</attribute> <attribute name="action">app.paste</attribute> <attribute name="verb-icon">edit-paste-symbolic</attribute> </item> </section> ]| # CSS nodes GtkPopover has a single css node called popover. It always gets the .background style class and it gets the .menu style class if it is menu-like (e.g. #GtkPopoverMenu or created using gtk_popover_new_from_model(). Particular uses of GtkPopover, such as touch selection popups or magnifiers in #GtkEntry or #GtkTextView get style classes like .touch-selection or .magnifier to differentiate from plain popovers.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_popover_new" version="3.12"> <doc xml:space="preserve">Creates a new popover to point to @relative_to</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkPopover</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="relative_to" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GtkWidget the popover is related to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </constructor> <constructor name="new_from_model" c:identifier="gtk_popover_new_from_model" version="3.12"> <doc xml:space="preserve">Creates a #GtkPopover and populates it according to @model. The popover is pointed to the @relative_to widget. 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 #GtkApplicationWindows widget hierarchy. Actions can also be added using gtk_widget_insert_action_group() on the menus attach widget or on any of its parent widgets.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkPopover</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="relative_to" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GtkWidget the popover is related to</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">a #GMenuModel</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </parameter> </parameters> </constructor> <virtual-method name="closed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </virtual-method> <method name="bind_model" c:identifier="gtk_popover_bind_model" version="3.12"> <doc xml:space="preserve">Establishes a binding between a #GtkPopover and a #GMenuModel. The contents of @popover are removed and then refilled with menu items according to @model. When @model changes, @popover is updated. Calling this function twice on @popover with different @model will cause the first binding to be replaced with a binding to the new model. If @model is %NULL then any previous binding is undone and all children are removed. If @action_namespace is non-%NULL then the effect is as if all actions mentioned in the @model have their names prefixed with the namespace, plus a dot. For example, if the action âquitâ is mentioned and @action_namespace is âappâ then the effective action name is âapp.quitâ. This function uses #GtkActionable to define the action name and target values on the created menu items. If you want to use an action group other than âappâ and âwinâ, or if you want to use a #GtkMenuShell outside of a #GtkApplicationWindow, then you will need to attach your own action group to the widget hierarchy using gtk_widget_insert_action_group(). As an example, if you created a group with a âquitâ action and inserted it with the name âmygroupâ then you would use the action name âmygroup.quitâ in your #GMenuModel.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GMenuModel to bind to or %NULL to remove binding</doc> <type name="Gio.MenuModel" c:type="GMenuModel*"/> </parameter> <parameter name="action_namespace" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the namespace for actions in @model</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_constrain_to" c:identifier="gtk_popover_get_constrain_to" version="3.20"> <doc xml:space="preserve">Returns the constraint for placing this popover. See gtk_popover_set_constrain_to().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the constraint for placing this popover.</doc> <type name="PopoverConstraint" c:type="GtkPopoverConstraint"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </method> <method name="get_default_widget" c:identifier="gtk_popover_get_default_widget" version="3.18"> <doc xml:space="preserve">Gets the widget that should be set as the default while the popover is shown.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the default widget, or %NULL if there is none</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </method> <method name="get_modal" c:identifier="gtk_popover_get_modal" version="3.12"> <doc xml:space="preserve">Returns whether the popover is modal, see gtk_popover_set_modal to see the implications of this.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">#TRUE if @popover is modal</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </method> <method name="get_pointing_to" c:identifier="gtk_popover_get_pointing_to"> <doc xml:space="preserve">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 attached widget coordinates.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a rectangle to point to was set.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">location to store the rectangle</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_position" c:identifier="gtk_popover_get_position"> <doc xml:space="preserve">Returns the preferred position of @popover.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The preferred position.</doc> <type name="PositionType" c:type="GtkPositionType"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </method> <method name="get_relative_to" c:identifier="gtk_popover_get_relative_to" version="3.12"> <doc xml:space="preserve">Returns the widget @popover is currently attached to</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </method> <method name="get_transitions_enabled" c:identifier="gtk_popover_get_transitions_enabled" version="3.16" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Returns whether show/hide transitions are enabled on this popover.</doc> <doc-deprecated xml:space="preserve">You can show or hide the popover without transitions using gtk_widget_show() and gtk_widget_hide() while gtk_popover_popup() and gtk_popover_popdown() will use transitions.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">#TRUE if the show and hide transitions of the given popover are enabled, #FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </method> <method name="popdown" c:identifier="gtk_popover_popdown" version="3.22"> <doc xml:space="preserve">Pops @popover down.This is different than a gtk_widget_hide() call in that it shows the popover with a transition. If you want to hide the popover without a transition, use gtk_widget_hide().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </method> <method name="popup" c:identifier="gtk_popover_popup" version="3.22"> <doc xml:space="preserve">Pops @popover up. This is different than a gtk_widget_show() call in that it shows the popover with a transition. If you want to show the popover without a transition, use gtk_widget_show().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> </parameters> </method> <method name="set_constrain_to" c:identifier="gtk_popover_set_constrain_to" version="3.20"> <doc xml:space="preserve">Sets a constraint for positioning this popover. Note that not all platforms support placing popovers freely, and may already impose constraints.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="constraint" transfer-ownership="none"> <doc xml:space="preserve">the new constraint</doc> <type name="PopoverConstraint" c:type="GtkPopoverConstraint"/> </parameter> </parameters> </method> <method name="set_default_widget" c:identifier="gtk_popover_set_default_widget" version="3.18"> <doc xml:space="preserve">Sets the widget that should be set as default widget while the popover is shown (see gtk_window_set_default()). #GtkPopover remembers the previous default widget and reestablishes it when the popover is dismissed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the new default widget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_modal" c:identifier="gtk_popover_set_modal" version="3.12"> <doc xml:space="preserve">Sets whether @popover is modal, a modal popover will grab all input within the toplevel and grab the keyboard focus on it when being displayed. Clicking outside the popover area or pressing Esc will dismiss the popover and ungrab input.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="modal" transfer-ownership="none"> <doc xml:space="preserve">#TRUE to make popover claim all input within the toplevel</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_pointing_to" c:identifier="gtk_popover_set_pointing_to" version="3.12"> <doc xml:space="preserve">Sets the rectangle that @popover will point to, in the coordinate space of the widget @popover is attached to, see gtk_popover_set_relative_to().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="rect" transfer-ownership="none"> <doc xml:space="preserve">rectangle to point to</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> </parameters> </method> <method name="set_position" c:identifier="gtk_popover_set_position" version="3.12"> <doc xml:space="preserve">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</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">preferred popover position</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </method> <method name="set_relative_to" c:identifier="gtk_popover_set_relative_to" version="3.12"> <doc xml:space="preserve">Sets a new widget to be attached to @popover. If @popover is visible, the position will be updated. Note: the ownership of popovers is always given to their @relative_to widget, so if @relative_to is set to %NULL on an attached @popover, it will be detached from its previous widget, and consequently destroyed unless extra references are kept.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="relative_to" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_transitions_enabled" c:identifier="gtk_popover_set_transitions_enabled" version="3.16" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Sets whether show/hide transitions are enabled on this popover</doc> <doc-deprecated xml:space="preserve">You can show or hide the popover without transitions using gtk_widget_show() and gtk_widget_hide() while gtk_popover_popup() and gtk_popover_popdown() will use transitions.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopover</doc> <type name="Popover" c:type="GtkPopover*"/> </instance-parameter> <parameter name="transitions_enabled" transfer-ownership="none"> <doc xml:space="preserve">Whether transitions are enabled</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="constrain-to" version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets a constraint for the popover position.</doc> <type name="PopoverConstraint"/> </property> <property name="modal" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets whether the popover is modal (so other elements in the window do not receive input while the popover is visible).</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="pointing-to" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Marks a specific rectangle to be pointed.</doc> <type name="Gdk.Rectangle"/> </property> <property name="position" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets the preferred position of the popover.</doc> <type name="PositionType"/> </property> <property name="relative-to" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets the attached widget.</doc> <type name="Widget"/> </property> <property name="transitions-enabled" version="3.16" deprecated="1" deprecated-version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether show/hide transitions are enabled for this popover.</doc> <doc-deprecated xml:space="preserve">You can show or hide the popover without transitions using gtk_widget_show() and gtk_widget_hide() while gtk_popover_popup() and gtk_popover_popdown() will use transitions.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="PopoverPrivate" c:type="GtkPopoverPrivate*"/> </field> <glib:signal name="closed" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="PopoverAccessible" c:symbol-prefix="popover_accessible" c:type="GtkPopoverAccessible" parent="ContainerAccessible" glib:type-name="GtkPopoverAccessible" glib:get-type="gtk_popover_accessible_get_type" glib:type-struct="PopoverAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> </class> <record name="PopoverAccessibleClass" c:type="GtkPopoverAccessibleClass" glib:is-gtype-struct-for="PopoverAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="PopoverClass" c:type="GtkPopoverClass" glib:is-gtype-struct-for="Popover"> <field name="parent_class"> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="closed"> <callback name="closed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="popover" transfer-ownership="none"> <type name="Popover" c:type="GtkPopover*"/> </parameter> </parameters> </callback> </field> <field name="reserved" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="10"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <enumeration name="PopoverConstraint" version="3.20" glib:type-name="GtkPopoverConstraint" glib:get-type="gtk_popover_constraint_get_type" c:type="GtkPopoverConstraint"> <doc xml:space="preserve">Describes constraints to positioning of popovers. More values may be added to this enumeration in the future.</doc> <member name="none" value="0" c:identifier="GTK_POPOVER_CONSTRAINT_NONE" glib:nick="none"> <doc xml:space="preserve">Don't constrain the popover position beyond what is imposed by the implementation</doc> </member> <member name="window" value="1" c:identifier="GTK_POPOVER_CONSTRAINT_WINDOW" glib:nick="window"> <doc xml:space="preserve">Constrain the popover to the boundaries of the window that it is attached to</doc> </member> </enumeration> <class name="PopoverMenu" c:symbol-prefix="popover_menu" c:type="GtkPopoverMenu" parent="Popover" glib:type-name="GtkPopoverMenu" glib:get-type="gtk_popover_menu_get_type" glib:type-struct="PopoverMenuClass"> <doc xml:space="preserve">GtkPopoverMenu is a subclass of #GtkPopover that treats its children like menus and allows switching between them. It is meant to be used primarily together with #GtkModelButton, but any widget can be used, such as #GtkSpinButton or #GtkScale. In this respect, GtkPopoverMenu is more flexible than popovers that are created from a #GMenuModel with gtk_popover_new_from_model(). To add a child as a submenu, set the #GtkPopoverMenu:submenu child property to the name of the submenu. To let the user open this submenu, add a #GtkModelButton whose #GtkModelButton:menu-name property is set to the name you've given to the submenu. By convention, the first child of a submenu should be a #GtkModelButton to switch back to the parent menu. Such a button should use the #GtkModelButton:inverted and #GtkModelButton:centered properties to achieve a title-like appearance and place the submenu indicator at the opposite side. To switch back to the main menu, use "main" as the menu name. # Example |[ <object class="GtkPopoverMenu"> <child> <object class="GtkBox"> <property name="visible">True</property> <property name="margin">10</property> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">win.frob</property> <property name="text" translatable="yes">Frob</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="menu-name">more</property> <property name="text" translatable="yes">More</property> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">True</property> <property name="margin">10</property> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">win.foo</property> <property name="text" translatable="yes">Foo</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">True</property> <property name="action-name">win.bar</property> <property name="text" translatable="yes">Bar</property> </object> </child> </object> <packing> <property name="submenu">more</property> </packing> </child> </object> ]| Just like normal popovers created using gtk_popover_new_from_model, #GtkPopoverMenu instances have a single css node called "popover" and get the .menu style class.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_popover_menu_new" version="3.16"> <doc xml:space="preserve">Creates a new popover menu.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkPopoverMenu</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="open_submenu" c:identifier="gtk_popover_menu_open_submenu" version="3.16"> <doc xml:space="preserve">Opens a submenu of the @popover. The @name must be one of the names given to the submenus of @popover with #GtkPopoverMenu:submenu, or "main" to switch back to the main menu. #GtkModelButton will open submenus automatically when the #GtkModelButton:menu-name property is set, so this function is only needed when you are using other kinds of widgets to initiate menu changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="popover" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPopoverMenu</doc> <type name="PopoverMenu" c:type="GtkPopoverMenu*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the menu to switch to</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="visible-submenu" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> </class> <record name="PopoverMenuClass" c:type="GtkPopoverMenuClass" glib:is-gtype-struct-for="PopoverMenu"> <field name="parent_class"> <type name="PopoverClass" c:type="GtkPopoverClass"/> </field> <field name="reserved" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="10"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <record name="PopoverPrivate" c:type="GtkPopoverPrivate" disguised="1"> </record> <enumeration name="PositionType" glib:type-name="GtkPositionType" glib:get-type="gtk_position_type_get_type" c:type="GtkPositionType"> <doc xml:space="preserve">Describes which edge of a widget a certain feature is positioned at, e.g. the tabs of a #GtkNotebook, the handle of a #GtkHandleBox or the label of a #GtkScale.</doc> <member name="left" value="0" c:identifier="GTK_POS_LEFT" glib:nick="left"> <doc xml:space="preserve">The feature is at the left edge.</doc> </member> <member name="right" value="1" c:identifier="GTK_POS_RIGHT" glib:nick="right"> <doc xml:space="preserve">The feature is at the right edge.</doc> </member> <member name="top" value="2" c:identifier="GTK_POS_TOP" glib:nick="top"> <doc xml:space="preserve">The feature is at the top edge.</doc> </member> <member name="bottom" value="3" c:identifier="GTK_POS_BOTTOM" glib:nick="bottom"> <doc xml:space="preserve">The feature is at the bottom edge.</doc> </member> </enumeration> <class name="PrintContext" c:symbol-prefix="print_context" c:type="GtkPrintContext" parent="GObject.Object" glib:type-name="GtkPrintContext" glib:get-type="gtk_print_context_get_type"> <doc xml:space="preserve">A GtkPrintContext encapsulates context information that is required when drawing pages for printing, such as the cairo context and important parameters like page size and resolution. It also lets you easily create #PangoLayout and #PangoContext objects that match the font metrics of the cairo surface. GtkPrintContext objects gets passed to the #GtkPrintOperation::begin-print, #GtkPrintOperation::end-print, #GtkPrintOperation::request-page-setup and #GtkPrintOperation::draw-page signals on the #GtkPrintOperation. ## Using GtkPrintContext in a #GtkPrintOperation::draw-page callback |[<!-- language="C" --> static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, int page_nr) { cairo_t *cr; PangoLayout *layout; PangoFontDescription *desc; cr = gtk_print_context_get_cairo_context (context); // Draw a red rectangle, as wide as the paper (inside the margins) cairo_set_source_rgb (cr, 1.0, 0, 0); cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50); cairo_fill (cr); // Draw some lines cairo_move_to (cr, 20, 10); cairo_line_to (cr, 40, 20); cairo_arc (cr, 60, 60, 20, 0, M_PI); cairo_line_to (cr, 80, 20); cairo_set_source_rgb (cr, 0, 0, 0); cairo_set_line_width (cr, 5); cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND); cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND); cairo_stroke (cr); // Draw some text layout = gtk_print_context_create_pango_layout (context); pango_layout_set_text (layout, "Hello World! Printing is easy", -1); desc = pango_font_description_from_string ("sans 28"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); cairo_move_to (cr, 30, 20); pango_cairo_layout_path (cr, layout); // Font Outline cairo_set_source_rgb (cr, 0.93, 1.0, 0.47); cairo_set_line_width (cr, 0.5); cairo_stroke_preserve (cr); // Font Fill cairo_set_source_rgb (cr, 0, 0.0, 1.0); cairo_fill (cr); g_object_unref (layout); } ]| Printing support was added in GTK+ 2.10.</doc> <method name="create_pango_context" c:identifier="gtk_print_context_create_pango_context" version="2.10"> <doc xml:space="preserve">Creates a new #PangoContext that can be used with the #GtkPrintContext.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new Pango context for @context</doc> <type name="Pango.Context" c:type="PangoContext*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="create_pango_layout" c:identifier="gtk_print_context_create_pango_layout" version="2.10"> <doc xml:space="preserve">Creates a new #PangoLayout that is suitable for use with the #GtkPrintContext.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new Pango layout for @context</doc> <type name="Pango.Layout" c:type="PangoLayout*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="get_cairo_context" c:identifier="gtk_print_context_get_cairo_context" version="2.10"> <doc xml:space="preserve">Obtains the cairo context that is associated with the #GtkPrintContext.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the cairo context of @context</doc> <type name="cairo.Context" c:type="cairo_t*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="get_dpi_x" c:identifier="gtk_print_context_get_dpi_x" version="2.10"> <doc xml:space="preserve">Obtains the horizontal resolution of the #GtkPrintContext, in dots per inch.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the horizontal resolution of @context</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="get_dpi_y" c:identifier="gtk_print_context_get_dpi_y" version="2.10"> <doc xml:space="preserve">Obtains the vertical resolution of the #GtkPrintContext, in dots per inch.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical resolution of @context</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="get_hard_margins" c:identifier="gtk_print_context_get_hard_margins" version="2.20"> <doc xml:space="preserve">Obtains the hardware printer margins of the #GtkPrintContext, in units.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the hard margins were retrieved</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> <parameter name="top" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">top hardware printer margin</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="bottom" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">bottom hardware printer margin</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="left" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">left hardware printer margin</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="right" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">right hardware printer margin</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="get_height" c:identifier="gtk_print_context_get_height" version="2.10"> <doc xml:space="preserve">Obtains the height of the #GtkPrintContext, in pixels.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the height of @context</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="get_page_setup" c:identifier="gtk_print_context_get_page_setup" version="2.10"> <doc xml:space="preserve">Obtains the #GtkPageSetup that determines the page dimensions of the #GtkPrintContext.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the page setup of @context</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="get_pango_fontmap" c:identifier="gtk_print_context_get_pango_fontmap" version="2.10"> <doc xml:space="preserve">Returns a #PangoFontMap that is suitable for use with the #GtkPrintContext.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the font map of @context</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="get_width" c:identifier="gtk_print_context_get_width" version="2.10"> <doc xml:space="preserve">Obtains the width of the #GtkPrintContext, in pixels.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the width of @context</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> </parameters> </method> <method name="set_cairo_context" c:identifier="gtk_print_context_set_cairo_context" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintContext</doc> <type name="PrintContext" c:type="GtkPrintContext*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">the cairo context</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="dpi_x" transfer-ownership="none"> <doc xml:space="preserve">the horizontal resolution to use with @cr</doc> <type name="gdouble" c:type="double"/> </parameter> <parameter name="dpi_y" transfer-ownership="none"> <doc xml:space="preserve">the vertical resolution to use with @cr</doc> <type name="gdouble" c:type="double"/> </parameter> </parameters> </method> </class> <enumeration name="PrintDuplex" glib:type-name="GtkPrintDuplex" glib:get-type="gtk_print_duplex_get_type" c:type="GtkPrintDuplex"> <doc xml:space="preserve">See also gtk_print_settings_set_duplex().</doc> <member name="simplex" value="0" c:identifier="GTK_PRINT_DUPLEX_SIMPLEX" glib:nick="simplex"> <doc xml:space="preserve">No duplex.</doc> </member> <member name="horizontal" value="1" c:identifier="GTK_PRINT_DUPLEX_HORIZONTAL" glib:nick="horizontal"> <doc xml:space="preserve">Horizontal duplex.</doc> </member> <member name="vertical" value="2" c:identifier="GTK_PRINT_DUPLEX_VERTICAL" glib:nick="vertical"> <doc xml:space="preserve">Vertical duplex.</doc> </member> </enumeration> <enumeration name="PrintError" glib:type-name="GtkPrintError" glib:get-type="gtk_print_error_get_type" c:type="GtkPrintError" glib:error-domain="gtk-print-error-quark"> <doc xml:space="preserve">Error codes that identify various errors that can occur while using the GTK+ printing support.</doc> <member name="general" value="0" c:identifier="GTK_PRINT_ERROR_GENERAL" glib:nick="general"> <doc xml:space="preserve">An unspecified error occurred.</doc> </member> <member name="internal_error" value="1" c:identifier="GTK_PRINT_ERROR_INTERNAL_ERROR" glib:nick="internal-error"> <doc xml:space="preserve">An internal error occurred.</doc> </member> <member name="nomem" value="2" c:identifier="GTK_PRINT_ERROR_NOMEM" glib:nick="nomem"> <doc xml:space="preserve">A memory allocation failed.</doc> </member> <member name="invalid_file" value="3" c:identifier="GTK_PRINT_ERROR_INVALID_FILE" glib:nick="invalid-file"> <doc xml:space="preserve">An error occurred while loading a page setup or paper size from a key file.</doc> </member> <function name="quark" c:identifier="gtk_print_error_quark" version="2.10"> <doc xml:space="preserve">Registers an error quark for #GtkPrintOperation if necessary.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The error quark used for #GtkPrintOperation errors.</doc> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> </enumeration> <class name="PrintOperation" c:symbol-prefix="print_operation" c:type="GtkPrintOperation" parent="GObject.Object" glib:type-name="GtkPrintOperation" glib:get-type="gtk_print_operation_get_type" glib:type-struct="PrintOperationClass"> <doc xml:space="preserve">GtkPrintOperation is the high-level, portable printing API. It looks a bit different than other GTK+ dialogs such as the #GtkFileChooser, since some platforms donât expose enough infrastructure to implement a good print dialog. On such platforms, GtkPrintOperation uses the native print dialog. On platforms which do not provide a native print dialog, GTK+ uses its own, see #GtkPrintUnixDialog. The typical way to use the high-level printing API is to create a GtkPrintOperation object with gtk_print_operation_new() when the user selects to print. Then you set some properties on it, e.g. the page size, any #GtkPrintSettings from previous print operations, the number of pages, the current page, etc. Then you start the print operation by calling gtk_print_operation_run(). It will then show a dialog, let the user select a printer and options. When the user finished the dialog various signals will be emitted on the #GtkPrintOperation, the main one being #GtkPrintOperation::draw-page, which you are supposed to catch and render the page on the provided #GtkPrintContext using Cairo. # The high-level printing API |[<!-- language="C" --> static GtkPrintSettings *settings = NULL; static void do_print (void) { GtkPrintOperation *print; GtkPrintOperationResult res; print = gtk_print_operation_new (); if (settings != NULL) gtk_print_operation_set_print_settings (print, settings); g_signal_connect (print, "begin_print", G_CALLBACK (begin_print), NULL); g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL); res = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (main_window), NULL); 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)); } g_object_unref (print); } ]| By default GtkPrintOperation uses an external application to do print preview. To implement a custom print preview, an application must connect to the preview signal. The functions gtk_print_operation_preview_render_page(), gtk_print_operation_preview_end_preview() and gtk_print_operation_preview_is_selected() are useful when implementing a print preview.</doc> <implements name="PrintOperationPreview"/> <constructor name="new" c:identifier="gtk_print_operation_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkPrintOperation.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </return-value> </constructor> <virtual-method name="begin_print"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="create_custom_widget" introspectable="0"> <return-value> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="custom_widget_apply"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="done"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="result" transfer-ownership="none"> <type name="PrintOperationResult" c:type="GtkPrintOperationResult"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_page"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> <parameter name="page_nr" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="end_print"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="paginate"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="preview"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="preview" transfer-ownership="none"> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> <parameter name="parent" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </virtual-method> <virtual-method name="request_page_setup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> <parameter name="page_nr" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="setup" transfer-ownership="none"> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> </parameters> </virtual-method> <virtual-method name="status_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="update_custom_widget"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="setup" transfer-ownership="none"> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> <parameter name="settings" transfer-ownership="none"> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </parameter> </parameters> </virtual-method> <method name="cancel" c:identifier="gtk_print_operation_cancel" version="2.10"> <doc xml:space="preserve">Cancels a running print operation. This function may be called from a #GtkPrintOperation::begin-print, #GtkPrintOperation::paginate or #GtkPrintOperation::draw-page signal handler to stop the currently running print operation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="draw_page_finish" c:identifier="gtk_print_operation_draw_page_finish" version="2.16"> <doc xml:space="preserve">Signalize that drawing of particular page is complete. It is called after completion of page drawing (e.g. drawing in another thread). If gtk_print_operation_set_defer_drawing() was called before, then this function has to be called by application. In another case it is called by the library itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_default_page_setup" c:identifier="gtk_print_operation_get_default_page_setup" version="2.10"> <doc xml:space="preserve">Returns the default page setup, see gtk_print_operation_set_default_page_setup().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default page setup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_embed_page_setup" c:identifier="gtk_print_operation_get_embed_page_setup" version="2.18"> <doc xml:space="preserve">Gets the value of #GtkPrintOperation:embed-page-setup property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether page setup selection combos are embedded</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_error" c:identifier="gtk_print_operation_get_error" version="2.10" throws="1"> <doc xml:space="preserve">Call this when the result of a print operation is %GTK_PRINT_OPERATION_RESULT_ERROR, either as returned by gtk_print_operation_run(), or in the #GtkPrintOperation::done signal handler. The returned #GError will contain more details on what went wrong.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_has_selection" c:identifier="gtk_print_operation_get_has_selection" version="2.18"> <doc xml:space="preserve">Gets the value of #GtkPrintOperation:has-selection property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether there is a selection</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_n_pages_to_print" c:identifier="gtk_print_operation_get_n_pages_to_print" version="2.18"> <doc xml:space="preserve">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 #GtkPrintOperation::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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of pages that will be printed</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_print_settings" c:identifier="gtk_print_operation_get_print_settings" version="2.10"> <doc xml:space="preserve">Returns the current print settings. Note that the return value is %NULL until either gtk_print_operation_set_print_settings() or gtk_print_operation_run() have been called.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current print settings of @op.</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_status" c:identifier="gtk_print_operation_get_status" version="2.10"> <doc xml:space="preserve">Returns the status of the print operation. Also see gtk_print_operation_get_status_string().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the status of the print operation</doc> <type name="PrintStatus" c:type="GtkPrintStatus"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_status_string" c:identifier="gtk_print_operation_get_status_string" version="2.10"> <doc xml:space="preserve">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 gtk_print_operation_get_status() to obtain a status value that is suitable for programmatic use.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a string representation of the status of the print operation</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="get_support_selection" c:identifier="gtk_print_operation_get_support_selection" version="2.18"> <doc xml:space="preserve">Gets the value of #GtkPrintOperation:support-selection property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the application supports print of selection</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="is_finished" c:identifier="gtk_print_operation_is_finished" version="2.10"> <doc xml:space="preserve">A convenience function to find out if the print operation is finished, either successfully (%GTK_PRINT_STATUS_FINISHED) or unsuccessfully (%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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the print operation is finished.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="run" c:identifier="gtk_print_operation_run" version="2.10" throws="1"> <doc xml:space="preserve">Runs the print operation, by first letting the user modify print settings in the print dialog, and then print the document. Normally that this function does not return until the rendering of all pages is complete. You can connect to the #GtkPrintOperation::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 call gtk_print_operation_set_allow_async() or set the #GtkPrintOperation:allow-async property the operation will run asynchronously if this is supported on the platform. The #GtkPrintOperation::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). |[<!-- language="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, "begin-print", G_CALLBACK (begin_print), &data); g_signal_connect (print, "draw-page", G_CALLBACK (draw_page), &data); res = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, parent, &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, "Error printing file:\n%s", error->message); g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">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 gtk_print_operation_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 #GtkPrintOperation::done signal when done.</doc> <type name="PrintOperationResult" c:type="GtkPrintOperationResult"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action to start</doc> <type name="PrintOperationAction" c:type="GtkPrintOperationAction"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Transient parent of the dialog</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <method name="set_allow_async" c:identifier="gtk_print_operation_set_allow_async" version="2.10"> <doc xml:space="preserve">Sets whether the gtk_print_operation_run() may return before the print operation is completed. Note that some platforms may not allow asynchronous operation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="allow_async" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to allow asynchronous operation</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_current_page" c:identifier="gtk_print_operation_set_current_page" version="2.10"> <doc xml:space="preserve">Sets the current page. If this is called before gtk_print_operation_run(), the user will be able to select to print only the current page. Note that this only makes sense for pre-paginated documents.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="current_page" transfer-ownership="none"> <doc xml:space="preserve">the current page, 0-based</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_custom_tab_label" c:identifier="gtk_print_operation_set_custom_tab_label" version="2.10"> <doc xml:space="preserve">Sets the label for the tab holding custom widgets.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the label to use, or %NULL to use the default label</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_default_page_setup" c:identifier="gtk_print_operation_set_default_page_setup" version="2.10"> <doc xml:space="preserve">Makes @default_page_setup the default page setup for @op. This page setup will be used by gtk_print_operation_run(), but it can be overridden on a per-page basis by connecting to the #GtkPrintOperation::request-page-setup signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="default_page_setup" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkPageSetup, or %NULL</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> </parameters> </method> <method name="set_defer_drawing" c:identifier="gtk_print_operation_set_defer_drawing" version="2.16"> <doc xml:space="preserve">Sets up the #GtkPrintOperation to wait for calling of gtk_print_operation_draw_page_finish() from application. It can be used for drawing page in another thread. This function must be called in the callback of âdraw-pageâ signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> </parameters> </method> <method name="set_embed_page_setup" c:identifier="gtk_print_operation_set_embed_page_setup" version="2.18"> <doc xml:space="preserve">Embed page size combo box and orientation combo box into page setup page. Selected page setup is stored as default page setup in #GtkPrintOperation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="embed" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to embed page setup selection in the #GtkPrintUnixDialog</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_export_filename" c:identifier="gtk_print_operation_set_export_filename" version="2.10"> <doc xml:space="preserve">Sets up the #GtkPrintOperation to generate a file instead of showing the print dialog. The indended 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the filename for the exported file</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_has_selection" c:identifier="gtk_print_operation_set_has_selection" version="2.18"> <doc xml:space="preserve">Sets whether there is a selection to print. Application has to set number of pages to which the selection will draw by gtk_print_operation_set_n_pages() in a callback of #GtkPrintOperation::begin-print.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="has_selection" transfer-ownership="none"> <doc xml:space="preserve">%TRUE indicates that a selection exists</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_job_name" c:identifier="gtk_print_operation_set_job_name" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="job_name" transfer-ownership="none"> <doc xml:space="preserve">a string that identifies the print job</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_n_pages" c:identifier="gtk_print_operation_set_n_pages" version="2.10"> <doc xml:space="preserve">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 #GtkPrintOperation::begin-print signal hander. Note that the page numbers passed to the #GtkPrintOperation::request-page-setup and #GtkPrintOperation::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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="n_pages" transfer-ownership="none"> <doc xml:space="preserve">the number of pages</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_print_settings" c:identifier="gtk_print_operation_set_print_settings" version="2.10"> <doc xml:space="preserve">Sets the print settings for @op. This is typically used to re-establish print settings from a previous print operation, see gtk_print_operation_run().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="print_settings" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </parameter> </parameters> </method> <method name="set_show_progress" c:identifier="gtk_print_operation_set_show_progress" version="2.10"> <doc xml:space="preserve">If @show_progress is %TRUE, the print operation will show a progress dialog during the print operation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="show_progress" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to show a progress dialog</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_support_selection" c:identifier="gtk_print_operation_set_support_selection" version="2.18"> <doc xml:space="preserve">Sets whether selection is supported by #GtkPrintOperation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="support_selection" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to support selection</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_track_print_status" c:identifier="gtk_print_operation_set_track_print_status" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="track_status" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to track status after printing</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_unit" c:identifier="gtk_print_operation_set_unit" version="2.10"> <doc xml:space="preserve">Sets up the transformation for the cairo context obtained from #GtkPrintContext in such a way that distances are measured in units of @unit.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit to use</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="set_use_full_page" c:identifier="gtk_print_operation_set_use_full_page" version="2.10"> <doc xml:space="preserve">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 (which 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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="op" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperation</doc> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </instance-parameter> <parameter name="full_page" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to set up the #GtkPrintContext for the full page</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="allow-async" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkPrintOperation::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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="current-page" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The current page in the document. If this is set before gtk_print_operation_run(), the user will be able to select to print only the current page. Note that this only makes sense for pre-paginated documents.</doc> <type name="gint" c:type="gint"/> </property> <property name="custom-tab-label" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="default-page-setup" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkPageSetup used by default. This page setup will be used by gtk_print_operation_run(), but it can be overridden on a per-page basis by connecting to the #GtkPrintOperation::request-page-setup signal.</doc> <type name="PageSetup"/> </property> <property name="embed-page-setup" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, page size combo box and orientation combo box are embedded into page setup page.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="export-filename" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="has-selection" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 "Selection" button sensitive.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="job-name" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="n-pages" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkPrintOperation::begin-print signal hander. Note that the page numbers passed to the #GtkPrintOperation::request-page-setup and #GtkPrintOperation::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.</doc> <type name="gint" c:type="gint"/> </property> <property name="n-pages-to-print" version="2.18" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkPrintOperation::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.</doc> <type name="gint" c:type="gint"/> </property> <property name="print-settings" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkPrintSettings used for initializing the dialog. Setting this property is typically used to re-establish print settings from a previous print operation, see gtk_print_operation_run().</doc> <type name="PrintSettings"/> </property> <property name="show-progress" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether to show a progress dialog during the print operation.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="status" version="2.10" transfer-ownership="none"> <doc xml:space="preserve">The status of the print operation.</doc> <type name="PrintStatus"/> </property> <property name="status-string" version="2.10" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkPrintOperation:status property for a status value that is suitable for programmatic use.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="support-selection" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, the print operation will support print of selection. This allows the print dialog to show a "Selection" button.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="track-print-status" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="unit" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The transformation for the cairo context obtained from #GtkPrintContext is set up in such a way that distances are measured in units of @unit.</doc> <type name="Unit"/> </property> <property name="use-full-page" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, the transformation for the cairo context obtained from #GtkPrintContext puts the origin at the top left corner of the page (which 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).</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="PrintOperationPrivate" c:type="GtkPrintOperationPrivate*"/> </field> <glib:signal name="begin-print" when="last" version="2.10"> <doc xml:space="preserve">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 #GtkPrintContext and paginate the document accordingly, and then set the number of pages with gtk_print_operation_set_n_pages().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPrintContext for the current operation</doc> <type name="PrintContext"/> </parameter> </parameters> </glib:signal> <glib:signal name="create-custom-widget" when="last" version="2.10"> <doc xml:space="preserve">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 #GtkPrintOperation::custom-widget-apply signal is emitted on the operation. Then you can read out any information you need from the widgets.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A custom widget that gets embedded in the print dialog, or %NULL</doc> <type name="GObject.Object"/> </return-value> </glib:signal> <glib:signal name="custom-widget-apply" when="last" version="2.10"> <doc xml:space="preserve">Emitted right before #GtkPrintOperation::begin-print if you added a custom widget in the #GtkPrintOperation::create-custom-widget handler. When you get this signal you should read the information from the custom widgets, as the widgets are not guaraneed to be around at a later time.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the custom widget added in create-custom-widget</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="done" when="last" version="2.10"> <doc xml:space="preserve">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 gtk_print_operation_get_error() for more information. If you enabled print status tracking then gtk_print_operation_is_finished() may still return %FALSE after #GtkPrintOperation::done was emitted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="result" transfer-ownership="none"> <doc xml:space="preserve">the result of the print operation</doc> <type name="PrintOperationResult"/> </parameter> </parameters> </glib:signal> <glib:signal name="draw-page" when="last" version="2.10"> <doc xml:space="preserve">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 gtk_print_context_get_cairo_context(). |[<!-- language="C" --> static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, gpointer user_data) { cairo_t *cr; PangoLayout *layout; gdouble width, text_height; gint 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 ("sans 14"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_text (layout, "some text", -1); pango_layout_set_width (layout, width * PANGO_SCALE); pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER); pango_layout_get_size (layout, NULL, &layout_height); text_height = (gdouble)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 gtk_print_operation_set_use_full_page() and gtk_print_operation_set_unit() before starting the print operation to set up the transformation of the cairo context according to your needs.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPrintContext for the current operation</doc> <type name="PrintContext"/> </parameter> <parameter name="page_nr" transfer-ownership="none"> <doc xml:space="preserve">the number of the currently printed page (0-based)</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="end-print" when="last" version="2.10"> <doc xml:space="preserve">Emitted after all pages have been rendered. A handler for this signal can clean up any resources that have been allocated in the #GtkPrintOperation::begin-print handler.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPrintContext for the current operation</doc> <type name="PrintContext"/> </parameter> </parameters> </glib:signal> <glib:signal name="paginate" when="last" version="2.10"> <doc xml:space="preserve">Emitted after the #GtkPrintOperation::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 gtk_print_operation_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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if pagination is complete</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPrintContext for the current operation</doc> <type name="PrintContext"/> </parameter> </parameters> </glib:signal> <glib:signal name="preview" when="last" version="2.10"> <doc xml:space="preserve">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 gtk_print_context_set_cairo_context(). The custom preview implementation can use gtk_print_operation_preview_is_selected() and gtk_print_operation_preview_render_page() to find pages which are selected for print and render them. The preview must be finished by calling gtk_print_operation_preview_end_preview() (typically in response to the user clicking a close button).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the listener wants to take over control of the preview</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPrintOperationPreview for the current operation</doc> <type name="PrintOperationPreview"/> </parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPrintContext that will be used</doc> <type name="PrintContext"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkWindow to use as window parent, or %NULL</doc> <type name="Window"/> </parameter> </parameters> </glib:signal> <glib:signal name="request-page-setup" when="last" version="2.10"> <doc xml:space="preserve">Emitted once for every page that is printed, to give the application a chance to modify the page setup. Any changes done to @setup will be in force only for printing this page.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPrintContext for the current operation</doc> <type name="PrintContext"/> </parameter> <parameter name="page_nr" transfer-ownership="none"> <doc xml:space="preserve">the number of the currently printed page (0-based)</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPageSetup</doc> <type name="PageSetup"/> </parameter> </parameters> </glib:signal> <glib:signal name="status-changed" when="last" version="2.10"> <doc xml:space="preserve">Emitted at between the various phases of the print operation. See #GtkPrintStatus for the phases that are being discriminated. Use gtk_print_operation_get_status() to find out the current status.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="update-custom-widget" when="last" version="2.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the custom widget added in create-custom-widget</doc> <type name="Widget"/> </parameter> <parameter name="setup" transfer-ownership="none"> <doc xml:space="preserve">actual page setup</doc> <type name="PageSetup"/> </parameter> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">actual print settings</doc> <type name="PrintSettings"/> </parameter> </parameters> </glib:signal> </class> <enumeration name="PrintOperationAction" glib:type-name="GtkPrintOperationAction" glib:get-type="gtk_print_operation_action_get_type" c:type="GtkPrintOperationAction"> <doc xml:space="preserve">The @action parameter to gtk_print_operation_run() determines what action the print operation should perform.</doc> <member name="print_dialog" value="0" c:identifier="GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG" glib:nick="print-dialog"> <doc xml:space="preserve">Show the print dialog.</doc> </member> <member name="print" value="1" c:identifier="GTK_PRINT_OPERATION_ACTION_PRINT" glib:nick="print"> <doc xml:space="preserve">Start to print without showing the print dialog, based on the current print settings.</doc> </member> <member name="preview" value="2" c:identifier="GTK_PRINT_OPERATION_ACTION_PREVIEW" glib:nick="preview"> <doc xml:space="preserve">Show the print preview.</doc> </member> <member name="export" value="3" c:identifier="GTK_PRINT_OPERATION_ACTION_EXPORT" glib:nick="export"> <doc xml:space="preserve">Export to a file. This requires the export-filename property to be set.</doc> </member> </enumeration> <record name="PrintOperationClass" c:type="GtkPrintOperationClass" glib:is-gtype-struct-for="PrintOperation"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="done"> <callback name="done"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="result" transfer-ownership="none"> <type name="PrintOperationResult" c:type="GtkPrintOperationResult"/> </parameter> </parameters> </callback> </field> <field name="begin_print"> <callback name="begin_print"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> </parameters> </callback> </field> <field name="paginate"> <callback name="paginate"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> </parameters> </callback> </field> <field name="request_page_setup"> <callback name="request_page_setup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> <parameter name="page_nr" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="setup" transfer-ownership="none"> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> </parameters> </callback> </field> <field name="draw_page"> <callback name="draw_page"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> <parameter name="page_nr" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="end_print"> <callback name="end_print"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> </parameters> </callback> </field> <field name="status_changed"> <callback name="status_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> </parameters> </callback> </field> <field name="create_custom_widget" introspectable="0"> <callback name="create_custom_widget" introspectable="0"> <return-value> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> </parameters> </callback> </field> <field name="custom_widget_apply"> <callback name="custom_widget_apply"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="preview"> <callback name="preview"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="preview" transfer-ownership="none"> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> <parameter name="parent" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </callback> </field> <field name="update_custom_widget"> <callback name="update_custom_widget"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="operation" transfer-ownership="none"> <type name="PrintOperation" c:type="GtkPrintOperation*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="setup" transfer-ownership="none"> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> <parameter name="settings" transfer-ownership="none"> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <interface name="PrintOperationPreview" c:symbol-prefix="print_operation_preview" c:type="GtkPrintOperationPreview" glib:type-name="GtkPrintOperationPreview" glib:get-type="gtk_print_operation_preview_get_type" glib:type-struct="PrintOperationPreviewIface"> <virtual-method name="end_preview" invoker="end_preview" version="2.10"> <doc xml:space="preserve">Ends a preview. This function must be called to finish a custom print preview.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="got_page_size"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="preview" transfer-ownership="none"> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> <parameter name="page_setup" transfer-ownership="none"> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> </parameters> </virtual-method> <virtual-method name="is_selected" invoker="is_selected" version="2.10"> <doc xml:space="preserve">Returns whether the given page is included in the set of pages that have been selected for printing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the page has been selected for printing</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </instance-parameter> <parameter name="page_nr" transfer-ownership="none"> <doc xml:space="preserve">a page number</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="ready"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="preview" transfer-ownership="none"> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_page" invoker="render_page" version="2.10"> <doc xml:space="preserve">Renders a page to the preview, using the print context that was passed to the #GtkPrintOperation::preview handler together with @preview. A custom iprint preview should use this function in its ::expose handler to render the currently selected page. Note that this function requires a suitable cairo context to be associated with the print context.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </instance-parameter> <parameter name="page_nr" transfer-ownership="none"> <doc xml:space="preserve">the page to render</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <method name="end_preview" c:identifier="gtk_print_operation_preview_end_preview" version="2.10"> <doc xml:space="preserve">Ends a preview. This function must be called to finish a custom print preview.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </instance-parameter> </parameters> </method> <method name="is_selected" c:identifier="gtk_print_operation_preview_is_selected" version="2.10"> <doc xml:space="preserve">Returns whether the given page is included in the set of pages that have been selected for printing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the page has been selected for printing</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </instance-parameter> <parameter name="page_nr" transfer-ownership="none"> <doc xml:space="preserve">a page number</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="render_page" c:identifier="gtk_print_operation_preview_render_page" version="2.10"> <doc xml:space="preserve">Renders a page to the preview, using the print context that was passed to the #GtkPrintOperation::preview handler together with @preview. A custom iprint preview should use this function in its ::expose handler to render the currently selected page. Note that this function requires a suitable cairo context to be associated with the print context.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </instance-parameter> <parameter name="page_nr" transfer-ownership="none"> <doc xml:space="preserve">the page to render</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <glib:signal name="got-page-size" when="last"> <doc xml:space="preserve">The ::got-page-size signal is 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 gtk_print_context_set_cairo_context().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the current #GtkPrintContext</doc> <type name="PrintContext"/> </parameter> <parameter name="page_setup" transfer-ownership="none"> <doc xml:space="preserve">the #GtkPageSetup for the current page</doc> <type name="PageSetup"/> </parameter> </parameters> </glib:signal> <glib:signal name="ready" when="last"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the current #GtkPrintContext</doc> <type name="PrintContext"/> </parameter> </parameters> </glib:signal> </interface> <record name="PrintOperationPreviewIface" c:type="GtkPrintOperationPreviewIface" glib:is-gtype-struct-for="PrintOperationPreview"> <field name="g_iface"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="ready"> <callback name="ready"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="preview" transfer-ownership="none"> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> </parameters> </callback> </field> <field name="got_page_size"> <callback name="got_page_size"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="preview" transfer-ownership="none"> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="PrintContext" c:type="GtkPrintContext*"/> </parameter> <parameter name="page_setup" transfer-ownership="none"> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> </parameters> </callback> </field> <field name="render_page"> <callback name="render_page"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </parameter> <parameter name="page_nr" transfer-ownership="none"> <doc xml:space="preserve">the page to render</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="is_selected"> <callback name="is_selected"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the page has been selected for printing</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </parameter> <parameter name="page_nr" transfer-ownership="none"> <doc xml:space="preserve">a page number</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="end_preview"> <callback name="end_preview"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="preview" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintOperationPreview</doc> <type name="PrintOperationPreview" c:type="GtkPrintOperationPreview*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="PrintOperationPrivate" c:type="GtkPrintOperationPrivate" disguised="1"> </record> <enumeration name="PrintOperationResult" glib:type-name="GtkPrintOperationResult" glib:get-type="gtk_print_operation_result_get_type" c:type="GtkPrintOperationResult"> <doc xml:space="preserve">A value of this type is returned by gtk_print_operation_run().</doc> <member name="error" value="0" c:identifier="GTK_PRINT_OPERATION_RESULT_ERROR" glib:nick="error"> <doc xml:space="preserve">An error has occurred.</doc> </member> <member name="apply" value="1" c:identifier="GTK_PRINT_OPERATION_RESULT_APPLY" glib:nick="apply"> <doc xml:space="preserve">The print settings should be stored.</doc> </member> <member name="cancel" value="2" c:identifier="GTK_PRINT_OPERATION_RESULT_CANCEL" glib:nick="cancel"> <doc xml:space="preserve">The print operation has been canceled, the print settings should not be stored.</doc> </member> <member name="in_progress" value="3" c:identifier="GTK_PRINT_OPERATION_RESULT_IN_PROGRESS" glib:nick="in-progress"> <doc xml:space="preserve">The print operation is not complete yet. This value will only be returned when running asynchronously.</doc> </member> </enumeration> <enumeration name="PrintPages" glib:type-name="GtkPrintPages" glib:get-type="gtk_print_pages_get_type" c:type="GtkPrintPages"> <doc xml:space="preserve">See also gtk_print_job_set_pages()</doc> <member name="all" value="0" c:identifier="GTK_PRINT_PAGES_ALL" glib:nick="all"> <doc xml:space="preserve">All pages.</doc> </member> <member name="current" value="1" c:identifier="GTK_PRINT_PAGES_CURRENT" glib:nick="current"> <doc xml:space="preserve">Current page.</doc> </member> <member name="ranges" value="2" c:identifier="GTK_PRINT_PAGES_RANGES" glib:nick="ranges"> <doc xml:space="preserve">Range of pages.</doc> </member> <member name="selection" value="3" c:identifier="GTK_PRINT_PAGES_SELECTION" glib:nick="selection"> <doc xml:space="preserve">Selected pages.</doc> </member> </enumeration> <enumeration name="PrintQuality" glib:type-name="GtkPrintQuality" glib:get-type="gtk_print_quality_get_type" c:type="GtkPrintQuality"> <doc xml:space="preserve">See also gtk_print_settings_set_quality().</doc> <member name="low" value="0" c:identifier="GTK_PRINT_QUALITY_LOW" glib:nick="low"> <doc xml:space="preserve">Low quality.</doc> </member> <member name="normal" value="1" c:identifier="GTK_PRINT_QUALITY_NORMAL" glib:nick="normal"> <doc xml:space="preserve">Normal quality.</doc> </member> <member name="high" value="2" c:identifier="GTK_PRINT_QUALITY_HIGH" glib:nick="high"> <doc xml:space="preserve">High quality.</doc> </member> <member name="draft" value="3" c:identifier="GTK_PRINT_QUALITY_DRAFT" glib:nick="draft"> <doc xml:space="preserve">Draft quality.</doc> </member> </enumeration> <class name="PrintSettings" c:symbol-prefix="print_settings" c:type="GtkPrintSettings" parent="GObject.Object" glib:type-name="GtkPrintSettings" glib:get-type="gtk_print_settings_get_type"> <doc xml:space="preserve">A GtkPrintSettings object represents the settings of a print dialog in a system-independent way. The main use for this object is that once youâve printed you can get a settings object that represents the settings the user chose, and the next time you print you can pass that object in so that the user doesnât have to re-set all his settings. Its also possible to enumerate the settings so that you can easily save the settings for the next time your app runs, or even store them in a document. The predefined keys try to use shared values as much as possible so that moving such a document between systems still works. Printing support was added in GTK+ 2.10.</doc> <constructor name="new" c:identifier="gtk_print_settings_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkPrintSettings object.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPrintSettings object</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </return-value> </constructor> <constructor name="new_from_file" c:identifier="gtk_print_settings_new_from_file" version="2.12" throws="1"> <doc xml:space="preserve">Reads the print settings from @file_name. Returns a new #GtkPrintSettings object with the restored settings, or %NULL if an error occurred. If the file could not be loaded then error is set to either a #GFileError or #GKeyFileError. See gtk_print_settings_to_file().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the restored #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </return-value> <parameters> <parameter name="file_name" transfer-ownership="none"> <doc xml:space="preserve">the filename to read the settings from</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_gvariant" c:identifier="gtk_print_settings_new_from_gvariant" version="3.22"> <doc xml:space="preserve">Deserialize print settings from an a{sv} variant in the format produced by gtk_print_settings_to_gvariant().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPrintSettings object</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </return-value> <parameters> <parameter name="variant" transfer-ownership="none"> <doc xml:space="preserve">an a{sv} #GVariant</doc> <type name="GLib.Variant" c:type="GVariant*"/> </parameter> </parameters> </constructor> <constructor name="new_from_key_file" c:identifier="gtk_print_settings_new_from_key_file" version="2.12" throws="1"> <doc xml:space="preserve">Reads the print settings from the group @group_name in @key_file. Returns a new #GtkPrintSettings object with the restored settings, or %NULL if an error occurred. If the file could not be loaded then error is set to either a #GFileError or #GKeyFileError.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the restored #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </return-value> <parameters> <parameter name="key_file" transfer-ownership="none"> <doc xml:space="preserve">the #GKeyFile to retrieve the settings from</doc> <type name="GLib.KeyFile" c:type="GKeyFile*"/> </parameter> <parameter name="group_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of the group to use, or %NULL to use the default âPrint Settingsâ</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="copy" c:identifier="gtk_print_settings_copy" version="2.10"> <doc xml:space="preserve">Copies a #GtkPrintSettings object.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated copy of @other</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </return-value> <parameters> <instance-parameter name="other" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="foreach" c:identifier="gtk_print_settings_foreach" version="2.10"> <doc xml:space="preserve">Calls @func for each key-value pair of @settings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">the function to call</doc> <type name="PrintSettingsFunc" c:type="GtkPrintSettingsFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data for @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="get" c:identifier="gtk_print_settings_get" version="2.10"> <doc xml:space="preserve">Looks up the string value associated with @key.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the string value for @key</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_bool" c:identifier="gtk_print_settings_get_bool" version="2.10"> <doc xml:space="preserve">Returns the boolean represented by the value that is associated with @key. The string âtrueâ represents %TRUE, any other string %FALSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @key maps to a true value.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_collate" c:identifier="gtk_print_settings_get_collate" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_COLLATE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether to collate the printed pages</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_default_source" c:identifier="gtk_print_settings_get_default_source" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default source</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_dither" c:identifier="gtk_print_settings_get_dither" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_DITHER.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the dithering that is used</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_double" c:identifier="gtk_print_settings_get_double" version="2.10"> <doc xml:space="preserve">Returns the double value associated with @key, or 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the double value of @key</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_double_with_default" c:identifier="gtk_print_settings_get_double_with_default" version="2.10"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the floating point number associated with @key</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="def" transfer-ownership="none"> <doc xml:space="preserve">the default value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="get_duplex" c:identifier="gtk_print_settings_get_duplex" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_DUPLEX.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether to print the output in duplex.</doc> <type name="PrintDuplex" c:type="GtkPrintDuplex"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_finishings" c:identifier="gtk_print_settings_get_finishings" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_FINISHINGS.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the finishings</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_int" c:identifier="gtk_print_settings_get_int" version="2.10"> <doc xml:space="preserve">Returns the integer value of @key, or 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the integer value of @key</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_int_with_default" c:identifier="gtk_print_settings_get_int_with_default" version="2.10"> <doc xml:space="preserve">Returns the value of @key, interpreted as an integer, or the default value.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the integer value of @key</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="def" transfer-ownership="none"> <doc xml:space="preserve">the default value</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_length" c:identifier="gtk_print_settings_get_length" version="2.10"> <doc xml:space="preserve">Returns the value associated with @key, interpreted as a length. The returned value is converted to @units.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the length value of @key, converted to @unit</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit of the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_media_type" c:identifier="gtk_print_settings_get_media_type" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_MEDIA_TYPE. The set of media types is defined in PWG 5101.1-2002 PWG.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the media type</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_n_copies" c:identifier="gtk_print_settings_get_n_copies" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_N_COPIES.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of copies to print</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_number_up" c:identifier="gtk_print_settings_get_number_up" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of pages per sheet</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_number_up_layout" c:identifier="gtk_print_settings_get_number_up_layout" version="2.14"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">layout of page in number-up mode</doc> <type name="NumberUpLayout" c:type="GtkNumberUpLayout"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_orientation" c:identifier="gtk_print_settings_get_orientation" version="2.10"> <doc xml:space="preserve">Get the value of %GTK_PRINT_SETTINGS_ORIENTATION, converted to a #GtkPageOrientation.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the orientation</doc> <type name="PageOrientation" c:type="GtkPageOrientation"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_output_bin" c:identifier="gtk_print_settings_get_output_bin" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the output bin</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_page_ranges" c:identifier="gtk_print_settings_get_page_ranges" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">an array of #GtkPageRanges. Use g_free() to free the array when it is no longer needed.</doc> <array length="0" zero-terminated="0" c:type="GtkPageRange*"> <type name="PageRange" c:type="GtkPageRange"/> </array> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="num_ranges" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the length of the returned array</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_page_set" c:identifier="gtk_print_settings_get_page_set" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_PAGE_SET.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the set of pages to print</doc> <type name="PageSet" c:type="GtkPageSet"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_paper_height" c:identifier="gtk_print_settings_get_paper_height" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_PAPER_HEIGHT, converted to @unit.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the paper height, in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_paper_size" c:identifier="gtk_print_settings_get_paper_size" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_PAPER_FORMAT, converted to a #GtkPaperSize.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the paper size</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_paper_width" c:identifier="gtk_print_settings_get_paper_width" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_PAPER_WIDTH, converted to @unit.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the paper width, in units of @unit</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit for the return value</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="get_print_pages" c:identifier="gtk_print_settings_get_print_pages" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">which pages to print</doc> <type name="PrintPages" c:type="GtkPrintPages"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_printer" c:identifier="gtk_print_settings_get_printer" version="2.10"> <doc xml:space="preserve">Convenience function to obtain the value of %GTK_PRINT_SETTINGS_PRINTER.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the printer name</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_printer_lpi" c:identifier="gtk_print_settings_get_printer_lpi" version="2.16"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_PRINTER_LPI.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the resolution in lpi (lines per inch)</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_quality" c:identifier="gtk_print_settings_get_quality" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_QUALITY.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the print quality</doc> <type name="PrintQuality" c:type="GtkPrintQuality"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_resolution" c:identifier="gtk_print_settings_get_resolution" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the resolution in dpi</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_resolution_x" c:identifier="gtk_print_settings_get_resolution_x" version="2.16"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION_X.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the horizontal resolution in dpi</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_resolution_y" c:identifier="gtk_print_settings_get_resolution_y" version="2.16"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION_Y.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical resolution in dpi</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_reverse" c:identifier="gtk_print_settings_get_reverse" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_REVERSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether to reverse the order of the printed pages</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_scale" c:identifier="gtk_print_settings_get_scale" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_SCALE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the scale in percent</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="get_use_color" c:identifier="gtk_print_settings_get_use_color" version="2.10"> <doc xml:space="preserve">Gets the value of %GTK_PRINT_SETTINGS_USE_COLOR.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether to use color</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="has_key" c:identifier="gtk_print_settings_has_key" version="2.10"> <doc xml:space="preserve">Returns %TRUE, if a value is associated with @key.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @key has a value</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="load_file" c:identifier="gtk_print_settings_load_file" version="2.14" throws="1"> <doc xml:space="preserve">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 gtk_print_settings_to_file().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="file_name" transfer-ownership="none"> <doc xml:space="preserve">the filename to read the settings from</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="load_key_file" c:identifier="gtk_print_settings_load_key_file" version="2.14" throws="1"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key_file" transfer-ownership="none"> <doc xml:space="preserve">the #GKeyFile to retrieve the settings from</doc> <type name="GLib.KeyFile" c:type="GKeyFile*"/> </parameter> <parameter name="group_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of the group to use, or %NULL to use the default âPrint Settingsâ</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set" c:identifier="gtk_print_settings_set" version="2.10"> <doc xml:space="preserve">Associates @value with @key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string value, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_bool" c:identifier="gtk_print_settings_set_bool" version="2.10"> <doc xml:space="preserve">Sets @key to a boolean value.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">a boolean</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_collate" c:identifier="gtk_print_settings_set_collate" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_COLLATE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="collate" transfer-ownership="none"> <doc xml:space="preserve">whether to collate the output</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_default_source" c:identifier="gtk_print_settings_set_default_source" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="default_source" transfer-ownership="none"> <doc xml:space="preserve">the default source</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_dither" c:identifier="gtk_print_settings_set_dither" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_DITHER.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="dither" transfer-ownership="none"> <doc xml:space="preserve">the dithering that is used</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_double" c:identifier="gtk_print_settings_set_double" version="2.10"> <doc xml:space="preserve">Sets @key to a double value.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">a double value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_duplex" c:identifier="gtk_print_settings_set_duplex" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_DUPLEX.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="duplex" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintDuplex value</doc> <type name="PrintDuplex" c:type="GtkPrintDuplex"/> </parameter> </parameters> </method> <method name="set_finishings" c:identifier="gtk_print_settings_set_finishings" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_FINISHINGS.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="finishings" transfer-ownership="none"> <doc xml:space="preserve">the finishings</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_int" c:identifier="gtk_print_settings_set_int" version="2.10"> <doc xml:space="preserve">Sets @key to an integer value.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">an integer</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_length" c:identifier="gtk_print_settings_set_length" version="2.10"> <doc xml:space="preserve">Associates a length in units of @unit with @key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">a length</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the unit of @length</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="set_media_type" c:identifier="gtk_print_settings_set_media_type" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_MEDIA_TYPE. The set of media types is defined in PWG 5101.1-2002 PWG.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="media_type" transfer-ownership="none"> <doc xml:space="preserve">the media type</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_n_copies" c:identifier="gtk_print_settings_set_n_copies" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_N_COPIES.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="num_copies" transfer-ownership="none"> <doc xml:space="preserve">the number of copies</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_number_up" c:identifier="gtk_print_settings_set_number_up" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="number_up" transfer-ownership="none"> <doc xml:space="preserve">the number of pages per sheet</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_number_up_layout" c:identifier="gtk_print_settings_set_number_up_layout" version="2.14"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="number_up_layout" transfer-ownership="none"> <doc xml:space="preserve">a #GtkNumberUpLayout value</doc> <type name="NumberUpLayout" c:type="GtkNumberUpLayout"/> </parameter> </parameters> </method> <method name="set_orientation" c:identifier="gtk_print_settings_set_orientation" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_ORIENTATION.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">a page orientation</doc> <type name="PageOrientation" c:type="GtkPageOrientation"/> </parameter> </parameters> </method> <method name="set_output_bin" c:identifier="gtk_print_settings_set_output_bin" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="output_bin" transfer-ownership="none"> <doc xml:space="preserve">the output bin</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_page_ranges" c:identifier="gtk_print_settings_set_page_ranges" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="page_ranges" transfer-ownership="none"> <doc xml:space="preserve">an array of #GtkPageRanges</doc> <array length="1" zero-terminated="0" c:type="GtkPageRange*"> <type name="PageRange" c:type="GtkPageRange"/> </array> </parameter> <parameter name="num_ranges" transfer-ownership="none"> <doc xml:space="preserve">the length of @page_ranges</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_page_set" c:identifier="gtk_print_settings_set_page_set" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_PAGE_SET.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="page_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPageSet value</doc> <type name="PageSet" c:type="GtkPageSet"/> </parameter> </parameters> </method> <method name="set_paper_height" c:identifier="gtk_print_settings_set_paper_height" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_PAPER_HEIGHT.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the paper height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the units of @height</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="set_paper_size" c:identifier="gtk_print_settings_set_paper_size" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_PAPER_FORMAT, %GTK_PRINT_SETTINGS_PAPER_WIDTH and %GTK_PRINT_SETTINGS_PAPER_HEIGHT.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="paper_size" transfer-ownership="none"> <doc xml:space="preserve">a paper size</doc> <type name="PaperSize" c:type="GtkPaperSize*"/> </parameter> </parameters> </method> <method name="set_paper_width" c:identifier="gtk_print_settings_set_paper_width" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_PAPER_WIDTH.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the paper width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="unit" transfer-ownership="none"> <doc xml:space="preserve">the units of @width</doc> <type name="Unit" c:type="GtkUnit"/> </parameter> </parameters> </method> <method name="set_print_pages" c:identifier="gtk_print_settings_set_print_pages" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="pages" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintPages value</doc> <type name="PrintPages" c:type="GtkPrintPages"/> </parameter> </parameters> </method> <method name="set_printer" c:identifier="gtk_print_settings_set_printer" version="2.10"> <doc xml:space="preserve">Convenience function to set %GTK_PRINT_SETTINGS_PRINTER to @printer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="printer" transfer-ownership="none"> <doc xml:space="preserve">the printer name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_printer_lpi" c:identifier="gtk_print_settings_set_printer_lpi" version="2.16"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_PRINTER_LPI.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="lpi" transfer-ownership="none"> <doc xml:space="preserve">the resolution in lpi (lines per inch)</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_quality" c:identifier="gtk_print_settings_set_quality" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_QUALITY.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="quality" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintQuality value</doc> <type name="PrintQuality" c:type="GtkPrintQuality"/> </parameter> </parameters> </method> <method name="set_resolution" c:identifier="gtk_print_settings_set_resolution" version="2.10"> <doc xml:space="preserve">Sets the values of %GTK_PRINT_SETTINGS_RESOLUTION, %GTK_PRINT_SETTINGS_RESOLUTION_X and %GTK_PRINT_SETTINGS_RESOLUTION_Y.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="resolution" transfer-ownership="none"> <doc xml:space="preserve">the resolution in dpi</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_resolution_xy" c:identifier="gtk_print_settings_set_resolution_xy" version="2.16"> <doc xml:space="preserve">Sets the values of %GTK_PRINT_SETTINGS_RESOLUTION, %GTK_PRINT_SETTINGS_RESOLUTION_X and %GTK_PRINT_SETTINGS_RESOLUTION_Y.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="resolution_x" transfer-ownership="none"> <doc xml:space="preserve">the horizontal resolution in dpi</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="resolution_y" transfer-ownership="none"> <doc xml:space="preserve">the vertical resolution in dpi</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_reverse" c:identifier="gtk_print_settings_set_reverse" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_REVERSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="reverse" transfer-ownership="none"> <doc xml:space="preserve">whether to reverse the output</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_scale" c:identifier="gtk_print_settings_set_scale" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_SCALE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">the scale in percent</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_use_color" c:identifier="gtk_print_settings_set_use_color" version="2.10"> <doc xml:space="preserve">Sets the value of %GTK_PRINT_SETTINGS_USE_COLOR.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="use_color" transfer-ownership="none"> <doc xml:space="preserve">whether to use color</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="to_file" c:identifier="gtk_print_settings_to_file" version="2.12" throws="1"> <doc xml:space="preserve">This function saves the print settings from @settings to @file_name. If the file could not be loaded then error is set to either a #GFileError or #GKeyFileError.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="file_name" transfer-ownership="none"> <doc xml:space="preserve">the file to save to</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="to_gvariant" c:identifier="gtk_print_settings_to_gvariant" version="3.22"> <doc xml:space="preserve">Serialize print settings to an a{sv} variant.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new, floating, #GVariant</doc> <type name="GLib.Variant" c:type="GVariant*"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> </parameters> </method> <method name="to_key_file" c:identifier="gtk_print_settings_to_key_file" version="2.12"> <doc xml:space="preserve">This function adds the print settings from @settings to @key_file.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key_file" transfer-ownership="none"> <doc xml:space="preserve">the #GKeyFile to save the print settings to</doc> <type name="GLib.KeyFile" c:type="GKeyFile*"/> </parameter> <parameter name="group_name" transfer-ownership="none"> <doc xml:space="preserve">the group to add the settings to in @key_file, or %NULL to use the default âPrint Settingsâ</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="unset" c:identifier="gtk_print_settings_unset" version="2.10"> <doc xml:space="preserve">Removes any value associated with @key. This has the same effect as setting the value to %NULL.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </instance-parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">a key</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> </class> <callback name="PrintSettingsFunc" c:type="GtkPrintSettingsFunc"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="key" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <enumeration name="PrintStatus" glib:type-name="GtkPrintStatus" glib:get-type="gtk_print_status_get_type" c:type="GtkPrintStatus"> <doc xml:space="preserve">The status gives a rough indication of the completion of a running print operation.</doc> <member name="initial" value="0" c:identifier="GTK_PRINT_STATUS_INITIAL" glib:nick="initial"> <doc xml:space="preserve">The printing has not started yet; this status is set initially, and while the print dialog is shown.</doc> </member> <member name="preparing" value="1" c:identifier="GTK_PRINT_STATUS_PREPARING" glib:nick="preparing"> <doc xml:space="preserve">This status is set while the begin-print signal is emitted and during pagination.</doc> </member> <member name="generating_data" value="2" c:identifier="GTK_PRINT_STATUS_GENERATING_DATA" glib:nick="generating-data"> <doc xml:space="preserve">This status is set while the pages are being rendered.</doc> </member> <member name="sending_data" value="3" c:identifier="GTK_PRINT_STATUS_SENDING_DATA" glib:nick="sending-data"> <doc xml:space="preserve">The print job is being sent off to the printer.</doc> </member> <member name="pending" value="4" c:identifier="GTK_PRINT_STATUS_PENDING" glib:nick="pending"> <doc xml:space="preserve">The print job has been sent to the printer, but is not printed for some reason, e.g. the printer may be stopped.</doc> </member> <member name="pending_issue" value="5" c:identifier="GTK_PRINT_STATUS_PENDING_ISSUE" glib:nick="pending-issue"> <doc xml:space="preserve">Some problem has occurred during printing, e.g. a paper jam.</doc> </member> <member name="printing" value="6" c:identifier="GTK_PRINT_STATUS_PRINTING" glib:nick="printing"> <doc xml:space="preserve">The printer is processing the print job.</doc> </member> <member name="finished" value="7" c:identifier="GTK_PRINT_STATUS_FINISHED" glib:nick="finished"> <doc xml:space="preserve">The printing has been completed successfully.</doc> </member> <member name="finished_aborted" value="8" c:identifier="GTK_PRINT_STATUS_FINISHED_ABORTED" glib:nick="finished-aborted"> <doc xml:space="preserve">The printing has been aborted.</doc> </member> </enumeration> <class name="ProgressBar" c:symbol-prefix="progress_bar" c:type="GtkProgressBar" parent="Widget" glib:type-name="GtkProgressBar" glib:get-type="gtk_progress_bar_get_type" glib:type-struct="ProgressBarClass"> <doc xml:space="preserve">The #GtkProgressBar is typically used to display the progress of a long running operation. It provides a visual clue that processing is underway. The GtkProgressBar can be used in two different modes: percentage mode and activity mode. When an application can determine how much work needs to take place (e.g. read a fixed number of bytes from a file) and can monitor its progress, it can use the GtkProgressBar in percentage mode and the user sees a growing bar indicating the percentage of the work that has been completed. In this mode, the application is required to call gtk_progress_bar_set_fraction() periodically to update the progress bar. When an application has no accurate way of knowing the amount of work to do, it can use the #GtkProgressBar in activity mode, which shows activity by a block moving back and forth within the progress area. In this mode, the application is required to call gtk_progress_bar_pulse() periodically to update the progress bar. There is quite a bit of flexibility provided to control the appearance of the #GtkProgressBar. Functions are provided to control the orientation of the bar, optional text can be displayed along with the bar, and the step size used in activity mode can be set. # CSS nodes |[<!-- language="plain" --> progressbar[.osd] âââ [text] â°ââ trough[.empty][.full] â°ââ progress[.pulse] ]| GtkProgressBar has a main CSS node with name progressbar and subnodes with names text and trough, of which the latter has a subnode named progress. The text subnode is only present if text is shown. The progress subnode has the style class .pulse when in activity mode. It gets the style classes .left, .right, .top or .bottom added when the progress 'touches' the corresponding end of the GtkProgressBar. The .osd class on the progressbar node is for use in overlays like the one Epiphany has for page loading progress.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_progress_bar_new"> <doc xml:space="preserve">Creates a new #GtkProgressBar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_ellipsize" c:identifier="gtk_progress_bar_get_ellipsize" version="2.6"> <doc xml:space="preserve">Returns the ellipsizing position of the progress bar. See gtk_progress_bar_set_ellipsize().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">#PangoEllipsizeMode</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> </parameters> </method> <method name="get_fraction" c:identifier="gtk_progress_bar_get_fraction"> <doc xml:space="preserve">Returns the current fraction of the task thatâs been completed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a fraction from 0.0 to 1.0</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> </parameters> </method> <method name="get_inverted" c:identifier="gtk_progress_bar_get_inverted"> <doc xml:space="preserve">Gets the value set by gtk_progress_bar_set_inverted().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the progress bar is inverted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> </parameters> </method> <method name="get_pulse_step" c:identifier="gtk_progress_bar_get_pulse_step"> <doc xml:space="preserve">Retrieves the pulse step set with gtk_progress_bar_set_pulse_step().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a fraction from 0.0 to 1.0</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> </parameters> </method> <method name="get_show_text" c:identifier="gtk_progress_bar_get_show_text" version="3.0"> <doc xml:space="preserve">Gets the value of the #GtkProgressBar:show-text property. See gtk_progress_bar_set_show_text().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if text is shown in the progress bar</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> </parameters> </method> <method name="get_text" c:identifier="gtk_progress_bar_get_text"> <doc xml:space="preserve">Retrieves the text that is displayed with the progress bar, if any, otherwise %NULL. 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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">text, or %NULL; this string is owned by the widget and should not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> </parameters> </method> <method name="pulse" c:identifier="gtk_progress_bar_pulse"> <doc xml:space="preserve">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 gtk_progress_bar_pulse() causes the block to move by a little bit (the amount of movement per pulse is determined by gtk_progress_bar_set_pulse_step()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> </parameters> </method> <method name="set_ellipsize" c:identifier="gtk_progress_bar_set_ellipsize" version="2.6"> <doc xml:space="preserve">Sets the mode used to ellipsize (add an ellipsis: "...") the text if there is not enough space to render the entire string.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">a #PangoEllipsizeMode</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </parameter> </parameters> </method> <method name="set_fraction" c:identifier="gtk_progress_bar_set_fraction"> <doc xml:space="preserve">Causes the progress bar to âfill inâ the given fraction of the bar. The fraction should be between 0.0 and 1.0, inclusive.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> <parameter name="fraction" transfer-ownership="none"> <doc xml:space="preserve">fraction of the task thatâs been completed</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_inverted" c:identifier="gtk_progress_bar_set_inverted"> <doc xml:space="preserve">Progress bars normally grow from top to bottom or left to right. Inverted progress bars grow in the opposite direction.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> <parameter name="inverted" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to invert the progress bar</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_pulse_step" c:identifier="gtk_progress_bar_set_pulse_step"> <doc xml:space="preserve">Sets the fraction of total progress bar length to move the bouncing block for each call to gtk_progress_bar_pulse().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> <parameter name="fraction" transfer-ownership="none"> <doc xml:space="preserve">fraction between 0.0 and 1.0</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_show_text" c:identifier="gtk_progress_bar_set_show_text" version="3.0"> <doc xml:space="preserve">Sets whether the progress bar will show text next to the bar. The shown text is either the value of the #GtkProgressBar:text property or, if that is %NULL, the #GtkProgressBar: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 #GtkProgressBar:show-text to %TRUE and #GtkProgressBar:text to the empty string (not %NULL).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> <parameter name="show_text" transfer-ownership="none"> <doc xml:space="preserve">whether to show text</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_text" c:identifier="gtk_progress_bar_set_text"> <doc xml:space="preserve">Causes the given @text to appear next to the progress bar. If @text is %NULL and #GtkProgressBar:show-text is %TRUE, the current value of #GtkProgressBar:fraction will be displayed as a percentage. If @text is non-%NULL and #GtkProgressBar: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 #GtkProgressBar:show-text is %TRUE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="pbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkProgressBar</doc> <type name="ProgressBar" c:type="GtkProgressBar*"/> </instance-parameter> <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a UTF-8 string, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="ellipsize" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The preferred place to ellipsize the string, 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 ("..."). Another means to set a progress bar's width is gtk_widget_set_size_request().</doc> <type name="Pango.EllipsizeMode"/> </property> <property name="fraction" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <property name="inverted" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="pulse-step" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <property name="show-text" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets whether the progress bar will show a text in addition to the bar itself. The shown text is either the value of the #GtkProgressBar:text property or, if that is %NULL, the #GtkProgressBar: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 #GtkProgressBar:show-text to %TRUE and #GtkProgressBar:text to the empty string (not %NULL).</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="text" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <field name="parent"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="ProgressBarPrivate" c:type="GtkProgressBarPrivate*"/> </field> </class> <class name="ProgressBarAccessible" c:symbol-prefix="progress_bar_accessible" c:type="GtkProgressBarAccessible" parent="WidgetAccessible" glib:type-name="GtkProgressBarAccessible" glib:get-type="gtk_progress_bar_accessible_get_type" glib:type-struct="ProgressBarAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Value"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="ProgressBarAccessiblePrivate" c:type="GtkProgressBarAccessiblePrivate*"/> </field> </class> <record name="ProgressBarAccessibleClass" c:type="GtkProgressBarAccessibleClass" glib:is-gtype-struct-for="ProgressBarAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="ProgressBarAccessiblePrivate" c:type="GtkProgressBarAccessiblePrivate" disguised="1"> </record> <record name="ProgressBarClass" c:type="GtkProgressBarClass" glib:is-gtype-struct-for="ProgressBar"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ProgressBarPrivate" c:type="GtkProgressBarPrivate" disguised="1"> </record> <enumeration name="PropagationPhase" version="3.14" glib:type-name="GtkPropagationPhase" glib:get-type="gtk_propagation_phase_get_type" c:type="GtkPropagationPhase"> <doc xml:space="preserve">Describes the stage at which events are fed into a #GtkEventController.</doc> <member name="none" value="0" c:identifier="GTK_PHASE_NONE" glib:nick="none"> <doc xml:space="preserve">Events are not delivered automatically. Those can be manually fed through gtk_event_controller_handle_event(). This should only be used when full control about when, or whether the controller handles the event is needed.</doc> </member> <member name="capture" value="1" c:identifier="GTK_PHASE_CAPTURE" glib:nick="capture"> <doc xml:space="preserve">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.</doc> </member> <member name="bubble" value="2" c:identifier="GTK_PHASE_BUBBLE" glib:nick="bubble"> <doc xml:space="preserve">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.</doc> </member> <member name="target" value="3" c:identifier="GTK_PHASE_TARGET" glib:nick="target"> <doc xml:space="preserve">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.</doc> </member> </enumeration> <class name="RadioAction" c:symbol-prefix="radio_action" c:type="GtkRadioAction" parent="ToggleAction" glib:type-name="GtkRadioAction" glib:get-type="gtk_radio_action_get_type" glib:type-struct="RadioActionClass"> <doc xml:space="preserve">A #GtkRadioAction is similar to #GtkRadioMenuItem. A number of radio actions can be linked together so that only one may be active at any one time.</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_radio_action_new" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkRadioAction object. To add the action to a #GtkActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkRadioAction</doc> <type name="RadioAction" c:type="GtkRadioAction*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">A unique name for the action</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The label displayed in menu items and on buttons, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="tooltip" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A tooltip for this action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="stock_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The stock icon to display in widgets representing this action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">The value which gtk_radio_action_get_current_value() should return if this action is selected.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </constructor> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <type name="RadioAction" c:type="GtkRadioAction*"/> </instance-parameter> <parameter name="current" transfer-ownership="none"> <type name="RadioAction" c:type="GtkRadioAction*"/> </parameter> </parameters> </virtual-method> <method name="get_current_value" c:identifier="gtk_radio_action_get_current_value" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains the value property of the currently active member of the group to which @action belongs.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The value of the currently active group member</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioAction</doc> <type name="RadioAction" c:type="GtkRadioAction*"/> </instance-parameter> </parameters> </method> <method name="get_group" c:identifier="gtk_radio_action_get_group" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the list representing the radio group for this object. Note that the returned list is only valid until the next change to the group. A common way to set up a group of radio group is the following: |[<!-- language="C" --> GSList *group = NULL; GtkRadioAction *action; while ( ...more actions to add... /) { action = gtk_radio_action_new (...); gtk_radio_action_set_group (action, group); group = gtk_radio_action_get_group (action); } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the list representing the radio group for this object</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioAction"/> </type> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="RadioAction" c:type="GtkRadioAction*"/> </instance-parameter> </parameters> </method> <method name="join_group" c:identifier="gtk_radio_action_join_group" version="3.0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Joins a radio action object to the group of another radio action object. Use this in language bindings instead of the gtk_radio_action_get_group() and gtk_radio_action_set_group() methods A common way to set up a group of radio actions is the following: |[<!-- language="C" --> GtkRadioAction *action; GtkRadioAction *last_action; while ( ...more actions to add... /) { action = gtk_radio_action_new (...); gtk_radio_action_join_group (action, last_action); last_action = action; } ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="RadioAction" c:type="GtkRadioAction*"/> </instance-parameter> <parameter name="group_source" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a radio action object whos group we are joining, or %NULL to remove the radio action from its group</doc> <type name="RadioAction" c:type="GtkRadioAction*"/> </parameter> </parameters> </method> <method name="set_current_value" c:identifier="gtk_radio_action_set_current_value" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the currently active group member to the member with value property @current_value.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioAction</doc> <type name="RadioAction" c:type="GtkRadioAction*"/> </instance-parameter> <parameter name="current_value" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_group" c:identifier="gtk_radio_action_set_group" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the radio group for the radio action object.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="RadioAction" c:type="GtkRadioAction*"/> </instance-parameter> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a list representing a radio group, or %NULL</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioAction"/> </type> </parameter> </parameters> </method> <property name="current-value" version="2.10" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The value property of the currently active member of the group to which this action belongs.</doc> <type name="gint" c:type="gint"/> </property> <property name="group" version="2.4" deprecated="1" deprecated-version="3.10" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets a new group for a radio action.</doc> <type name="RadioAction"/> </property> <property name="value" version="2.4" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The value is an arbitrary integer which can be used as a convenient way to determine which action in the group is currently active in an ::activate or ::changed signal handler. See gtk_radio_action_get_current_value() and #GtkRadioActionEntry for convenient ways to get and set this property.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent"> <type name="ToggleAction" c:type="GtkToggleAction"/> </field> <field name="private_data" readable="0" private="1"> <type name="RadioActionPrivate" c:type="GtkRadioActionPrivate*"/> </field> <glib:signal name="changed" when="first" no-recurse="1" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::changed signal is emitted on every member of a radio group when the active member is changed. The signal gets emitted after the ::activate signals for the previous and current active members.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="current" transfer-ownership="none"> <doc xml:space="preserve">the member of @action's group which has just been activated</doc> <type name="RadioAction"/> </parameter> </parameters> </glib:signal> </class> <record name="RadioActionClass" c:type="GtkRadioActionClass" glib:is-gtype-struct-for="RadioAction"> <field name="parent_class"> <type name="ToggleActionClass" c:type="GtkToggleActionClass"/> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <type name="RadioAction" c:type="GtkRadioAction*"/> </parameter> <parameter name="current" transfer-ownership="none"> <type name="RadioAction" c:type="GtkRadioAction*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="RadioActionEntry" c:type="GtkRadioActionEntry" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">#GtkRadioActionEntry structs are used with gtk_action_group_add_radio_actions() to construct groups of radio actions.</doc> <field name="name" writable="1"> <doc xml:space="preserve">The name of the action.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="stock_id" writable="1"> <doc xml:space="preserve">The stock id for the action, or the name of an icon from the icon theme.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="label" writable="1"> <doc xml:space="preserve">The label for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="accelerator" writable="1"> <doc xml:space="preserve">The accelerator for the action, in the format understood by gtk_accelerator_parse().</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="tooltip" writable="1"> <doc xml:space="preserve">The tooltip for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="value" writable="1"> <doc xml:space="preserve">The value to set on the radio action. See gtk_radio_action_get_current_value().</doc> <type name="gint" c:type="gint"/> </field> </record> <record name="RadioActionPrivate" c:type="GtkRadioActionPrivate" disguised="1"> </record> <class name="RadioButton" c:symbol-prefix="radio_button" c:type="GtkRadioButton" parent="CheckButton" glib:type-name="GtkRadioButton" glib:get-type="gtk_radio_button_get_type" glib:type-struct="RadioButtonClass"> <doc xml:space="preserve">A single radio button performs the same basic function as a #GtkCheckButton, as its position in the object hierarchy reflects. It is only when multiple radio buttons are grouped together that they become a different user interface component in their own right. Every radio button is a member of some group of radio buttons. When one is selected, all other radio buttons in the same group are deselected. A #GtkRadioButton is one way of giving the user a choice from many options. Radio button widgets are created with gtk_radio_button_new(), passing %NULL as the argument if this is the first radio button in a group. In subsequent calls, the group you wish to add this button to should be passed as an argument. Optionally, gtk_radio_button_new_with_label() can be used if you want a text label on the radio button. Alternatively, when adding widgets to an existing group of radio buttons, use gtk_radio_button_new_from_widget() with a #GtkRadioButton that already has a group assigned to it. The convenience function gtk_radio_button_new_with_label_from_widget() is also provided. To retrieve the group a #GtkRadioButton is assigned to, use gtk_radio_button_get_group(). To remove a #GtkRadioButton from one group and make it part of a new one, use gtk_radio_button_set_group(). The group list does not need to be freed, as each #GtkRadioButton will remove itself and its list item when it is destroyed. # CSS nodes |[<!-- language="plain" --> radiobutton âââ radio â°ââ <child> ]| A GtkRadioButton with indicator (see gtk_toggle_button_set_mode()) has a main CSS node with name radiobutton and a subnode with name radio. |[<!-- language="plain" --> button.radio âââ radio â°ââ <child> ]| A GtkRadioButton without indicator changes the name of its main node to button and adds a .radio style class to it. The subnode is invisible in this case. ## How to create a group of two radio buttons. |[<!-- language="C" --> void create_radio_buttons (void) { GtkWidget *window, *radio1, *radio2, *box, *entry; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); gtk_box_set_homogeneous (GTK_BOX (box), TRUE); // Create a radio button with a GtkEntry widget radio1 = gtk_radio_button_new (NULL); entry = gtk_entry_new (); gtk_container_add (GTK_CONTAINER (radio1), entry); // Create a radio button with a label radio2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio1), "Iâm the second radio button."); // Pack them into a box, then show all the widgets gtk_box_pack_start (GTK_BOX (box), radio1); gtk_box_pack_start (GTK_BOX (box), radio2); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_show_all (window); return; } ]| When an unselected button in the group is clicked the clicked button receives the #GtkToggleButton::toggled signal, as does the previously selected button. Inside the #GtkToggleButton::toggled handler, gtk_toggle_button_get_active() can be used to determine if the button has been selected or deselected.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_radio_button_new"> <doc xml:space="preserve">Creates a new #GtkRadioButton. To be of any practical value, a widget should then be packed into the radio button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new radio button</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing radio button group, or %NULL if you are creating a new group.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </parameter> </parameters> </constructor> <constructor name="new_from_widget" c:identifier="gtk_radio_button_new_from_widget"> <doc xml:space="preserve">Creates a new #GtkRadioButton, adding it to the same group as @radio_group_member. As with gtk_radio_button_new(), a widget should be packed into the radio button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new radio button.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="radio_group_member" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing #GtkRadioButton.</doc> <type name="RadioButton" c:type="GtkRadioButton*"/> </parameter> </parameters> </constructor> <constructor name="new_with_label" c:identifier="gtk_radio_button_new_with_label"> <doc xml:space="preserve">Creates a new #GtkRadioButton with a text label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new radio button.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing radio button group, or %NULL if you are creating a new group.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text label to display next to the radio button.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_label_from_widget" c:identifier="gtk_radio_button_new_with_label_from_widget"> <doc xml:space="preserve">Creates a new #GtkRadioButton with a text label, adding it to the same group as @radio_group_member.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new radio button.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="radio_group_member" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">widget to get radio group from or %NULL</doc> <type name="RadioButton" c:type="GtkRadioButton*"/> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a text string to display next to the radio button.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_radio_button_new_with_mnemonic"> <doc xml:space="preserve">Creates a new #GtkRadioButton containing a label, adding it to the same group as @group. The label will be created using gtk_label_new_with_mnemonic(), so underscores in @label indicate the mnemonic for the button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRadioButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the radio button group, or %NULL</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text of the button, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic_from_widget" c:identifier="gtk_radio_button_new_with_mnemonic_from_widget"> <doc xml:space="preserve">Creates a new #GtkRadioButton containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in @label indicate the mnemonic for the button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRadioButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="radio_group_member" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">widget to get radio group from or %NULL</doc> <type name="RadioButton" c:type="GtkRadioButton*"/> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text of the button, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="group_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="radio_button" transfer-ownership="none"> <type name="RadioButton" c:type="GtkRadioButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_group" c:identifier="gtk_radio_button_get_group"> <doc xml:space="preserve">Retrieves the group assigned to a radio button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a linked list containing all the radio buttons in the same group as @radio_button. The returned list is owned by the radio button and must not be modified or freed.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </return-value> <parameters> <instance-parameter name="radio_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioButton.</doc> <type name="RadioButton" c:type="GtkRadioButton*"/> </instance-parameter> </parameters> </method> <method name="join_group" c:identifier="gtk_radio_button_join_group" version="3.0"> <doc xml:space="preserve">Joins a #GtkRadioButton object to the group of another #GtkRadioButton object Use this in language bindings instead of the gtk_radio_button_get_group() and gtk_radio_button_set_group() methods A common way to set up a group of radio buttons is the following: |[<!-- language="C" --> GtkRadioButton *radio_button; GtkRadioButton *last_button; while (some_condition) { radio_button = gtk_radio_button_new (NULL); gtk_radio_button_join_group (radio_button, last_button); last_button = radio_button; } ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="radio_button" transfer-ownership="none"> <doc xml:space="preserve">the #GtkRadioButton object</doc> <type name="RadioButton" c:type="GtkRadioButton*"/> </instance-parameter> <parameter name="group_source" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a radio button object whos group we are joining, or %NULL to remove the radio button from its group</doc> <type name="RadioButton" c:type="GtkRadioButton*"/> </parameter> </parameters> </method> <method name="set_group" c:identifier="gtk_radio_button_set_group"> <doc xml:space="preserve">Sets a #GtkRadioButtonâs group. It should be noted that this does not change the layout of your interface in any way, so if you are changing the group, it is likely you will need to re-arrange the user interface to reflect these changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="radio_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioButton.</doc> <type name="RadioButton" c:type="GtkRadioButton*"/> </instance-parameter> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing radio button group, such as one returned from gtk_radio_button_get_group(), or %NULL.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </parameter> </parameters> </method> <property name="group" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets a new group for a radio button.</doc> <type name="RadioButton"/> </property> <field name="check_button"> <type name="CheckButton" c:type="GtkCheckButton"/> </field> <field name="priv" readable="0" private="1"> <type name="RadioButtonPrivate" c:type="GtkRadioButtonPrivate*"/> </field> <glib:signal name="group-changed" when="first" version="2.4"> <doc xml:space="preserve">Emitted when the group of radio buttons that a radio button belongs to changes. This is emitted when a radio button switches from being alone to being part of a group of 2 or more buttons, or vice-versa, and when a button is moved from one group of 2 or more buttons to a different one, but not when the composition of the group that a button belongs to changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="RadioButtonAccessible" c:symbol-prefix="radio_button_accessible" c:type="GtkRadioButtonAccessible" parent="ToggleButtonAccessible" glib:type-name="GtkRadioButtonAccessible" glib:get-type="gtk_radio_button_accessible_get_type" glib:type-struct="RadioButtonAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="ToggleButtonAccessible" c:type="GtkToggleButtonAccessible"/> </field> <field name="priv"> <type name="RadioButtonAccessiblePrivate" c:type="GtkRadioButtonAccessiblePrivate*"/> </field> </class> <record name="RadioButtonAccessibleClass" c:type="GtkRadioButtonAccessibleClass" glib:is-gtype-struct-for="RadioButtonAccessible"> <field name="parent_class"> <type name="ToggleButtonAccessibleClass" c:type="GtkToggleButtonAccessibleClass"/> </field> </record> <record name="RadioButtonAccessiblePrivate" c:type="GtkRadioButtonAccessiblePrivate" disguised="1"> </record> <record name="RadioButtonClass" c:type="GtkRadioButtonClass" glib:is-gtype-struct-for="RadioButton"> <field name="parent_class"> <type name="CheckButtonClass" c:type="GtkCheckButtonClass"/> </field> <field name="group_changed"> <callback name="group_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="radio_button" transfer-ownership="none"> <type name="RadioButton" c:type="GtkRadioButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="RadioButtonPrivate" c:type="GtkRadioButtonPrivate" disguised="1"> </record> <class name="RadioMenuItem" c:symbol-prefix="radio_menu_item" c:type="GtkRadioMenuItem" parent="CheckMenuItem" glib:type-name="GtkRadioMenuItem" glib:get-type="gtk_radio_menu_item_get_type" glib:type-struct="RadioMenuItemClass"> <doc xml:space="preserve">A radio menu item is a check menu item that belongs to a group. At each instant exactly one of the radio menu items from a group is selected. The group list does not need to be freed, as each #GtkRadioMenuItem will remove itself and its list item when it is destroyed. The correct way to create a group of radio menu items is approximatively this: ## How to create a group of radio menu items. |[<!-- language="C" --> GSList *group = NULL; GtkWidget *item; gint i; for (i = 0; i < 5; i++) { item = gtk_radio_menu_item_new_with_label (group, "This is an example"); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); if (i == 1) gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); } ]| # CSS nodes |[<!-- language="plain" --> menuitem âââ radio.left â°ââ <child> ]| GtkRadioMenuItem has a main CSS node with name menuitem, and a subnode with name radio, which gets the .left or .right style class.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_radio_menu_item_new"> <doc xml:space="preserve">Creates a new #GtkRadioMenuItem.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRadioMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the group to which the radio menu item is to be attached, or %NULL</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioMenuItem"/> </type> </parameter> </parameters> </constructor> <constructor name="new_from_widget" c:identifier="gtk_radio_menu_item_new_from_widget" version="2.4"> <doc xml:space="preserve">Creates a new #GtkRadioMenuItem adding it to the same group as @group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The new #GtkRadioMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">An existing #GtkRadioMenuItem</doc> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </parameter> </parameters> </constructor> <constructor name="new_with_label" c:identifier="gtk_radio_menu_item_new_with_label"> <doc xml:space="preserve">Creates a new #GtkRadioMenuItem whose child is a simple #GtkLabel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkRadioMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve"> group the radio menu item is inside, or %NULL</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioMenuItem"/> </type> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text for the label</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_label_from_widget" c:identifier="gtk_radio_menu_item_new_with_label_from_widget" version="2.4"> <doc xml:space="preserve">Creates a new GtkRadioMenuItem whose child is a simple GtkLabel. The new #GtkRadioMenuItem is added to the same group as @group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The new #GtkRadioMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing #GtkRadioMenuItem</doc> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the text for the label</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_radio_menu_item_new_with_mnemonic"> <doc xml:space="preserve">Creates a new #GtkRadioMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in @label indicate the mnemonic for the menu item.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRadioMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve"> group the radio menu item is inside, or %NULL</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioMenuItem"/> </type> </parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text of the button, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic_from_widget" c:identifier="gtk_radio_menu_item_new_with_mnemonic_from_widget" version="2.4"> <doc xml:space="preserve">Creates a new GtkRadioMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the menu item. The new #GtkRadioMenuItem is added to the same group as @group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The new #GtkRadioMenuItem</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">An existing #GtkRadioMenuItem</doc> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the text of the button, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="group_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="radio_menu_item" transfer-ownership="none"> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_group" c:identifier="gtk_radio_menu_item_get_group"> <doc xml:space="preserve">Returns the group to which the radio menu item belongs, as a #GList of #GtkRadioMenuItem. The list belongs to GTK+ and should not be freed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the group of @radio_menu_item</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioMenuItem"/> </type> </return-value> <parameters> <instance-parameter name="radio_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioMenuItem</doc> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </instance-parameter> </parameters> </method> <method name="join_group" c:identifier="gtk_radio_menu_item_join_group" version="3.18"> <doc xml:space="preserve">Joins a #GtkRadioMenuItem object to the group of another #GtkRadioMenuItem object. This function should be used by language bindings to avoid the memory manangement of the opaque #GSList of gtk_radio_menu_item_get_group() and gtk_radio_menu_item_set_group(). A common way to set up a group of #GtkRadioMenuItem instances is: |[ GtkRadioMenuItem *last_item = NULL; while ( ...more items to add... ) { GtkRadioMenuItem *radio_item; radio_item = gtk_radio_menu_item_new (...); gtk_radio_menu_item_join_group (radio_item, last_item); last_item = radio_item; } ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="radio_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioMenuItem</doc> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </instance-parameter> <parameter name="group_source" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkRadioMenuItem whose group we are joining, or %NULL to remove the @radio_menu_item from its current group</doc> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </parameter> </parameters> </method> <method name="set_group" c:identifier="gtk_radio_menu_item_set_group"> <doc xml:space="preserve">Sets the group of a radio menu item, or changes it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="radio_menu_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioMenuItem.</doc> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </instance-parameter> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the new group, or %NULL.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioMenuItem"/> </type> </parameter> </parameters> </method> <property name="group" version="2.8" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The radio menu item whose group this widget belongs to.</doc> <type name="RadioMenuItem"/> </property> <field name="check_menu_item"> <type name="CheckMenuItem" c:type="GtkCheckMenuItem"/> </field> <field name="priv" readable="0" private="1"> <type name="RadioMenuItemPrivate" c:type="GtkRadioMenuItemPrivate*"/> </field> <glib:signal name="group-changed" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="RadioMenuItemAccessible" c:symbol-prefix="radio_menu_item_accessible" c:type="GtkRadioMenuItemAccessible" parent="CheckMenuItemAccessible" glib:type-name="GtkRadioMenuItemAccessible" glib:get-type="gtk_radio_menu_item_accessible_get_type" glib:type-struct="RadioMenuItemAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <field name="parent"> <type name="CheckMenuItemAccessible" c:type="GtkCheckMenuItemAccessible"/> </field> <field name="priv"> <type name="RadioMenuItemAccessiblePrivate" c:type="GtkRadioMenuItemAccessiblePrivate*"/> </field> </class> <record name="RadioMenuItemAccessibleClass" c:type="GtkRadioMenuItemAccessibleClass" glib:is-gtype-struct-for="RadioMenuItemAccessible"> <field name="parent_class"> <type name="CheckMenuItemAccessibleClass" c:type="GtkCheckMenuItemAccessibleClass"/> </field> </record> <record name="RadioMenuItemAccessiblePrivate" c:type="GtkRadioMenuItemAccessiblePrivate" disguised="1"> </record> <record name="RadioMenuItemClass" c:type="GtkRadioMenuItemClass" glib:is-gtype-struct-for="RadioMenuItem"> <field name="parent_class"> <type name="CheckMenuItemClass" c:type="GtkCheckMenuItemClass"/> </field> <field name="group_changed"> <callback name="group_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="radio_menu_item" transfer-ownership="none"> <type name="RadioMenuItem" c:type="GtkRadioMenuItem*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="RadioMenuItemPrivate" c:type="GtkRadioMenuItemPrivate" disguised="1"> </record> <class name="RadioToolButton" c:symbol-prefix="radio_tool_button" c:type="GtkRadioToolButton" parent="ToggleToolButton" glib:type-name="GtkRadioToolButton" glib:get-type="gtk_radio_tool_button_get_type" glib:type-struct="RadioToolButtonClass"> <doc xml:space="preserve">A #GtkRadioToolButton is a #GtkToolItem that contains a radio button, that is, a button that is part of a group of toggle buttons where only one button can be active at a time. Use gtk_radio_tool_button_new() to create a new GtkRadioToolButton. Use gtk_radio_tool_button_new_from_widget() to create a new GtkRadioToolButton that is part of the same group as an existing GtkRadioToolButton. # CSS nodes GtkRadioToolButton has a single CSS node with name toolbutton.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_radio_tool_button_new" version="2.4"> <doc xml:space="preserve">Creates a new #GtkRadioToolButton, adding it to @group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The new #GtkRadioToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">An existing radio button group, or %NULL if you are creating a new group</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </parameter> </parameters> </constructor> <constructor name="new_from_stock" c:identifier="gtk_radio_tool_button_new_from_stock" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkRadioToolButton, adding it to @group. The new #GtkRadioToolButton will contain an icon and label from the stock item indicated by @stock_id.</doc> <doc-deprecated xml:space="preserve">Use gtk_radio_tool_button_new() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">The new #GtkRadioToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing radio button group, or %NULL if you are creating a new group</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the name of a stock item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_widget" c:identifier="gtk_radio_tool_button_new_from_widget" version="2.4"> <doc xml:space="preserve">Creates a new #GtkRadioToolButton adding it to the same group as @gruup</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The new #GtkRadioToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">An existing #GtkRadioToolButton, or %NULL</doc> <type name="RadioToolButton" c:type="GtkRadioToolButton*"/> </parameter> </parameters> </constructor> <constructor name="new_with_stock_from_widget" c:identifier="gtk_radio_tool_button_new_with_stock_from_widget" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkRadioToolButton adding it to the same group as @group. The new #GtkRadioToolButton will contain an icon and label from the stock item indicated by @stock_id.</doc> <doc-deprecated xml:space="preserve">gtk_radio_tool_button_new_from_widget</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkRadioToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">An existing #GtkRadioToolButton.</doc> <type name="RadioToolButton" c:type="GtkRadioToolButton*"/> </parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the name of a stock item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_group" c:identifier="gtk_radio_tool_button_get_group" version="2.4"> <doc xml:space="preserve">Returns the radio button group @button belongs to.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The group @button belongs to.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioToolButton</doc> <type name="RadioToolButton" c:type="GtkRadioToolButton*"/> </instance-parameter> </parameters> </method> <method name="set_group" c:identifier="gtk_radio_tool_button_set_group" version="2.4"> <doc xml:space="preserve">Adds @button to @group, removing it from the group it belonged to before.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRadioToolButton</doc> <type name="RadioToolButton" c:type="GtkRadioToolButton*"/> </instance-parameter> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing radio button group, or %NULL</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RadioButton"/> </type> </parameter> </parameters> </method> <property name="group" version="2.4" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets a new group for a radio tool button.</doc> <type name="RadioToolButton"/> </property> <field name="parent"> <type name="ToggleToolButton" c:type="GtkToggleToolButton"/> </field> </class> <record name="RadioToolButtonClass" c:type="GtkRadioToolButtonClass" glib:is-gtype-struct-for="RadioToolButton"> <field name="parent_class"> <type name="ToggleToolButtonClass" c:type="GtkToggleToolButtonClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="Range" c:symbol-prefix="range" c:type="GtkRange" parent="Widget" abstract="1" glib:type-name="GtkRange" glib:get-type="gtk_range_get_type" glib:type-struct="RangeClass"> <doc xml:space="preserve">#GtkRange is the common base class for widgets which visualize an adjustment, e.g #GtkScale or #GtkScrollbar. Apart from signals for monitoring the parameters of the adjustment, #GtkRange provides properties and methods for influencing the sensitivity of the âsteppersâ. It also provides properties and methods for setting a âfill levelâ on range widgets. See gtk_range_set_fill_level().</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <virtual-method name="adjust_bounds"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="new_value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="change_value"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> <parameter name="new_value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_range_border"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="border_" transfer-ownership="none"> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_range_size_request"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="minimum" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_slider"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> </parameters> </virtual-method> <virtual-method name="value_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_adjustment" c:identifier="gtk_range_get_adjustment"> <doc xml:space="preserve">Get the #GtkAdjustment which is the âmodelâ object for #GtkRange. See gtk_range_set_adjustment() for details. The return value does not have a reference added, so should not be unreferenced.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_fill_level" c:identifier="gtk_range_get_fill_level" version="2.12"> <doc xml:space="preserve">Gets the current position of the fill level indicator.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current fill level</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">A #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_flippable" c:identifier="gtk_range_get_flippable" version="2.18"> <doc xml:space="preserve">Gets the value set by gtk_range_set_flippable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the range is flippable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_inverted" c:identifier="gtk_range_get_inverted"> <doc xml:space="preserve">Gets the value set by gtk_range_set_inverted().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the range is inverted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_lower_stepper_sensitivity" c:identifier="gtk_range_get_lower_stepper_sensitivity" version="2.10"> <doc xml:space="preserve">Gets the sensitivity policy for the stepper that points to the 'lower' end of the GtkRangeâs adjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The lower stepperâs sensitivity policy.</doc> <type name="SensitivityType" c:type="GtkSensitivityType"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_min_slider_size" c:identifier="gtk_range_get_min_slider_size" version="2.20" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">This function is useful mainly for #GtkRange subclasses. See gtk_range_set_min_slider_size().</doc> <doc-deprecated xml:space="preserve">Use the min-height/min-width CSS properties on the slider node.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">The minimum size of the rangeâs slider.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_range_rect" c:identifier="gtk_range_get_range_rect" version="2.20"> <doc xml:space="preserve">This function returns the area that contains the rangeâs trough and its steppers, in widget->window coordinates. This function is useful mainly for #GtkRange subclasses.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="range_rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the range rectangle</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_restrict_to_fill_level" c:identifier="gtk_range_get_restrict_to_fill_level" version="2.12"> <doc xml:space="preserve">Gets whether the range is restricted to the fill level.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @range is restricted to the fill level.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">A #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_round_digits" c:identifier="gtk_range_get_round_digits" version="2.24"> <doc xml:space="preserve">Gets the number of digits to round the value to when it changes. See #GtkRange::change-value.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of digits to round to</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_show_fill_level" c:identifier="gtk_range_get_show_fill_level" version="2.12"> <doc xml:space="preserve">Gets whether the range displays the fill level graphically.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @range shows the fill level.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">A #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_slider_range" c:identifier="gtk_range_get_slider_range" version="2.20"> <doc xml:space="preserve">This function returns sliders range along the long dimension, in widget->window coordinates. This function is useful mainly for #GtkRange subclasses.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="slider_start" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the slider's start, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="slider_end" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the slider's end, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_slider_size_fixed" c:identifier="gtk_range_get_slider_size_fixed" version="2.20"> <doc xml:space="preserve">This function is useful mainly for #GtkRange subclasses. See gtk_range_set_slider_size_fixed().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the rangeâs slider has a fixed size.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_upper_stepper_sensitivity" c:identifier="gtk_range_get_upper_stepper_sensitivity" version="2.10"> <doc xml:space="preserve">Gets the sensitivity policy for the stepper that points to the 'upper' end of the GtkRangeâs adjustment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The upper stepperâs sensitivity policy.</doc> <type name="SensitivityType" c:type="GtkSensitivityType"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="get_value" c:identifier="gtk_range_get_value"> <doc xml:space="preserve">Gets the current value of the range.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">current value of the range.</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> </parameters> </method> <method name="set_adjustment" c:identifier="gtk_range_set_adjustment"> <doc xml:space="preserve">Sets the adjustment to be used as the âmodelâ object for this range widget. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_fill_level" c:identifier="gtk_range_set_fill_level" version="2.12"> <doc xml:space="preserve">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 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 controller by gtk_range_set_restrict_to_fill_level() and is by default enabled.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="fill_level" transfer-ownership="none"> <doc xml:space="preserve">the new position of the fill level indicator</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_flippable" c:identifier="gtk_range_set_flippable" version="2.18"> <doc xml:space="preserve">If a range is flippable, it will switch its direction if it is horizontal and its direction is %GTK_TEXT_DIR_RTL. See gtk_widget_get_direction().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="flippable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the range flippable</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_increments" c:identifier="gtk_range_set_increments"> <doc xml:space="preserve">Sets the step and page sizes for the range. The step size is used when the user clicks the #GtkScrollbar arrows or moves #GtkScale via arrow keys. The page size is used for example when moving via Page Up or Page Down keys.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">step size</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">page size</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_inverted" c:identifier="gtk_range_set_inverted"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to invert the range</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_lower_stepper_sensitivity" c:identifier="gtk_range_set_lower_stepper_sensitivity" version="2.10"> <doc xml:space="preserve">Sets the sensitivity policy for the stepper that points to the 'lower' end of the GtkRangeâs adjustment.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="sensitivity" transfer-ownership="none"> <doc xml:space="preserve">the lower stepperâs sensitivity policy.</doc> <type name="SensitivityType" c:type="GtkSensitivityType"/> </parameter> </parameters> </method> <method name="set_min_slider_size" c:identifier="gtk_range_set_min_slider_size" version="2.20" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Sets the minimum size of the rangeâs slider. This function is useful mainly for #GtkRange subclasses.</doc> <doc-deprecated xml:space="preserve">Use the min-height/min-width CSS properties on the slider node.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="min_size" transfer-ownership="none"> <doc xml:space="preserve">The sliderâs minimum size</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_range" c:identifier="gtk_range_set_range"> <doc xml:space="preserve">Sets the allowable values in the #GtkRange, and clamps the range value to be between @min and @max. (If the range has a non-zero page size, it is clamped between @min and @max - page-size.)</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="min" transfer-ownership="none"> <doc xml:space="preserve">minimum range value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="max" transfer-ownership="none"> <doc xml:space="preserve">maximum range value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_restrict_to_fill_level" c:identifier="gtk_range_set_restrict_to_fill_level" version="2.12"> <doc xml:space="preserve">Sets whether the slider is restricted to the fill level. See gtk_range_set_fill_level() for a general description of the fill level concept.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">A #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="restrict_to_fill_level" transfer-ownership="none"> <doc xml:space="preserve">Whether the fill level restricts slider movement.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_round_digits" c:identifier="gtk_range_set_round_digits" version="2.24"> <doc xml:space="preserve">Sets the number of digits to round the value to when it changes. See #GtkRange::change-value.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="round_digits" transfer-ownership="none"> <doc xml:space="preserve">the precision in digits, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_show_fill_level" c:identifier="gtk_range_set_show_fill_level" version="2.12"> <doc xml:space="preserve">Sets whether a graphical fill level is show on the trough. See gtk_range_set_fill_level() for a general description of the fill level concept.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">A #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="show_fill_level" transfer-ownership="none"> <doc xml:space="preserve">Whether a fill level indicator graphics is shown.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_slider_size_fixed" c:identifier="gtk_range_set_slider_size_fixed" version="2.20"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="size_fixed" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the slider size constant</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_upper_stepper_sensitivity" c:identifier="gtk_range_set_upper_stepper_sensitivity" version="2.10"> <doc xml:space="preserve">Sets the sensitivity policy for the stepper that points to the 'upper' end of the GtkRangeâs adjustment.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="sensitivity" transfer-ownership="none"> <doc xml:space="preserve">the upper stepperâs sensitivity policy.</doc> <type name="SensitivityType" c:type="GtkSensitivityType"/> </parameter> </parameters> </method> <method name="set_value" c:identifier="gtk_range_set_value"> <doc xml:space="preserve">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 #GtkRange::value-changed signal if the value changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="range" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRange</doc> <type name="Range" c:type="GtkRange*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">new value of the range</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <property name="adjustment" writable="1" construct="1" transfer-ownership="none"> <type name="Adjustment"/> </property> <property name="fill-level" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The fill level (e.g. prebuffering of a network stream). See gtk_range_set_fill_level().</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="inverted" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="lower-stepper-sensitivity" writable="1" transfer-ownership="none"> <type name="SensitivityType"/> </property> <property name="restrict-to-fill-level" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The restrict-to-fill-level property controls whether slider movement is restricted to an upper boundary set by the fill level. See gtk_range_set_restrict_to_fill_level().</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="round-digits" version="2.24" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The number of digits to round the value to when it changes, or -1. See #GtkRange::change-value.</doc> <type name="gint" c:type="gint"/> </property> <property name="show-fill-level" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The show-fill-level property controls whether fill level indicator graphics are displayed on the trough. See gtk_range_set_show_fill_level().</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="upper-stepper-sensitivity" writable="1" transfer-ownership="none"> <type name="SensitivityType"/> </property> <field name="widget"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv"> <type name="RangePrivate" c:type="GtkRangePrivate*"/> </field> <glib:signal name="adjust-bounds" when="last"> <doc xml:space="preserve">Emitted before clamping a value, to give the application a chance to adjust the bounds.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the value before we clamp</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> <glib:signal name="change-value" when="last" version="2.6"> <doc xml:space="preserve">The #GtkRange::change-value signal is 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 GtkRange::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 #GtkRange:round-digits.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to prevent other handlers from being invoked for the signal, %FALSE to propagate the signal further</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="scroll" transfer-ownership="none"> <doc xml:space="preserve">the type of scroll action that was performed</doc> <type name="ScrollType"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the new value resulting from the scroll action</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-slider" when="last" action="1"> <doc xml:space="preserve">Virtual function that moves the slider. Used for keybindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">how to move the slider</doc> <type name="ScrollType"/> </parameter> </parameters> </glib:signal> <glib:signal name="value-changed" when="last"> <doc xml:space="preserve">Emitted when the range value changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="RangeAccessible" c:symbol-prefix="range_accessible" c:type="GtkRangeAccessible" parent="WidgetAccessible" glib:type-name="GtkRangeAccessible" glib:get-type="gtk_range_accessible_get_type" glib:type-struct="RangeAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Value"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="RangeAccessiblePrivate" c:type="GtkRangeAccessiblePrivate*"/> </field> </class> <record name="RangeAccessibleClass" c:type="GtkRangeAccessibleClass" glib:is-gtype-struct-for="RangeAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="RangeAccessiblePrivate" c:type="GtkRangeAccessiblePrivate" disguised="1"> </record> <record name="RangeClass" c:type="GtkRangeClass" glib:is-gtype-struct-for="Range"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="slider_detail"> <type name="utf8" c:type="gchar*"/> </field> <field name="stepper_detail"> <type name="utf8" c:type="gchar*"/> </field> <field name="value_changed"> <callback name="value_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </parameter> </parameters> </callback> </field> <field name="adjust_bounds"> <callback name="adjust_bounds"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </parameter> <parameter name="new_value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="move_slider"> <callback name="move_slider"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> </parameters> </callback> </field> <field name="get_range_border"> <callback name="get_range_border"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </parameter> <parameter name="border_" transfer-ownership="none"> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </callback> </field> <field name="change_value"> <callback name="change_value"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> <parameter name="new_value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="get_range_size_request"> <callback name="get_range_size_request"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="range" transfer-ownership="none"> <type name="Range" c:type="GtkRange*"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="minimum" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="RangePrivate" c:type="GtkRangePrivate" disguised="1"> </record> <record name="RcContext" c:type="GtkRcContext" disguised="1"> </record> <bitfield name="RcFlags" glib:type-name="GtkRcFlags" glib:get-type="gtk_rc_flags_get_type" c:type="GtkRcFlags"> <doc xml:space="preserve">Deprecated</doc> <member name="fg" value="1" c:identifier="GTK_RC_FG" glib:nick="fg"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="bg" value="2" c:identifier="GTK_RC_BG" glib:nick="bg"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="text" value="4" c:identifier="GTK_RC_TEXT" glib:nick="text"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="base" value="8" c:identifier="GTK_RC_BASE" glib:nick="base"> <doc xml:space="preserve">Deprecated</doc> </member> </bitfield> <record name="RcProperty" c:type="GtkRcProperty"> <doc xml:space="preserve">Deprecated</doc> <field name="type_name" writable="1"> <doc xml:space="preserve">quark-ified type identifier</doc> <type name="GLib.Quark" c:type="GQuark"/> </field> <field name="property_name" writable="1"> <doc xml:space="preserve">quark-ified property identifier like âGtkScrollbar::spacingâ</doc> <type name="GLib.Quark" c:type="GQuark"/> </field> <field name="origin" writable="1"> <doc xml:space="preserve">field similar to one found in #GtkSettingsValue</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="value" writable="1"> <doc xml:space="preserve">field similar to one found in #GtkSettingsValue</doc> <type name="GObject.Value" c:type="GValue"/> </field> <function name="parse_border" c:identifier="gtk_rc_property_parse_border"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses borders in the form `"{ left, right, top, bottom }"` for integers left, right, top and bottom.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting #GtkBorder.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold boxed values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="parse_color" c:identifier="gtk_rc_property_parse_color"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses a color given either by its name or in the form `{ red, green, blue }` where red, green and blue are integers between 0 and 65535 or floating-point numbers between 0 and 1.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting #GdkColor.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold #GdkColor values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="parse_enum" c:identifier="gtk_rc_property_parse_enum"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses a single enumeration value. The enumeration value can be specified by its name, its nickname or its numeric value. For consistency with flags parsing, the value may be surrounded by parentheses.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting #GEnumValue.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold enum values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="parse_flags" c:identifier="gtk_rc_property_parse_flags"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses flags. Flags can be specified by their name, their nickname or numerically. Multiple flags can be specified in the form `"( flag1 | flag2 | ... )"`.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting flags value.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold flags values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="parse_requisition" c:identifier="gtk_rc_property_parse_requisition"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses a requisition in the form `"{ width, height }"` for integers %width and %height.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting #GtkRequisition.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold boxed values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> </record> <callback name="RcPropertyParser" c:type="GtkRcPropertyParser"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="rc_string" transfer-ownership="none"> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </callback> <class name="RcStyle" c:symbol-prefix="rc_style" c:type="GtkRcStyle" parent="GObject.Object" glib:type-name="GtkRcStyle" glib:get-type="gtk_rc_style_get_type" glib:type-struct="RcStyleClass"> <doc xml:space="preserve">The #GtkRcStyle-struct is used to represent a set of information about the appearance of a widget. This can later be composited together with other #GtkRcStyle-struct<!-- -->s to form a #GtkStyle.</doc> <constructor name="new" c:identifier="gtk_rc_style_new" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Creates a new #GtkRcStyle with no fields set and a reference count of 1.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">the newly-created #GtkRcStyle</doc> <type name="RcStyle" c:type="GtkRcStyle*"/> </return-value> </constructor> <virtual-method name="create_rc_style" introspectable="0"> <return-value> <type name="RcStyle" c:type="GtkRcStyle*"/> </return-value> <parameters> <instance-parameter name="rc_style" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="create_style" introspectable="0"> <return-value> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <instance-parameter name="rc_style" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="merge"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="dest" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </instance-parameter> <parameter name="src" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> </parameters> </virtual-method> <virtual-method name="parse"> <return-value transfer-ownership="none"> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="rc_style" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </instance-parameter> <parameter name="settings" transfer-ownership="none"> <type name="Settings" c:type="GtkSettings*"/> </parameter> <parameter name="scanner" transfer-ownership="none"> <type name="GLib.Scanner" c:type="GScanner*"/> </parameter> </parameters> </virtual-method> <method name="copy" c:identifier="gtk_rc_style_copy" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Makes a copy of the specified #GtkRcStyle. This function will correctly copy an RC style that is a member of a class derived from #GtkRcStyle.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">the resulting #GtkRcStyle</doc> <type name="RcStyle" c:type="GtkRcStyle*"/> </return-value> <parameters> <instance-parameter name="orig" transfer-ownership="none"> <doc xml:space="preserve">the style to copy</doc> <type name="RcStyle" c:type="GtkRcStyle*"/> </instance-parameter> </parameters> </method> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="name"> <doc xml:space="preserve">Name</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="bg_pixmap_name"> <doc xml:space="preserve">Pixmap name</doc> <array zero-terminated="0" c:type="gchar" fixed-size="5"> <type name="utf8" c:type="gchar*"/> </array> </field> <field name="font_desc"> <doc xml:space="preserve">A #PangoFontDescription</doc> <type name="Pango.FontDescription" c:type="PangoFontDescription*"/> </field> <field name="color_flags"> <doc xml:space="preserve">#GtkRcFlags</doc> <array zero-terminated="0" c:type="GtkRcFlags" fixed-size="5"> <type name="RcFlags" c:type="GtkRcFlags"/> </array> </field> <field name="fg"> <doc xml:space="preserve">Foreground colors</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="bg"> <doc xml:space="preserve">Background colors</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="text"> <doc xml:space="preserve">Text colors</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="base"> <doc xml:space="preserve">Base colors</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="xthickness"> <doc xml:space="preserve">X thickness</doc> <type name="gint" c:type="gint"/> </field> <field name="ythickness"> <doc xml:space="preserve">Y thickness</doc> <type name="gint" c:type="gint"/> </field> <field name="rc_properties" readable="0" private="1"> <array name="GLib.Array" c:type="GArray*"> <type name="gpointer" c:type="gpointer"/> </array> </field> <field name="rc_style_lists" readable="0" private="1"> <type name="GLib.SList" c:type="GSList*"> <type name="gpointer" c:type="gpointer"/> </type> </field> <field name="icon_factories" readable="0" private="1"> <type name="GLib.SList" c:type="GSList*"> <type name="gpointer" c:type="gpointer"/> </type> </field> <field name="engine_specified" readable="0" bits="1" private="1"> <type name="guint" c:type="guint"/> </field> </class> <record name="RcStyleClass" c:type="GtkRcStyleClass" glib:is-gtype-struct-for="RcStyle"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="create_rc_style" introspectable="0"> <callback name="create_rc_style" introspectable="0"> <return-value> <type name="RcStyle" c:type="GtkRcStyle*"/> </return-value> <parameters> <parameter name="rc_style" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> </parameters> </callback> </field> <field name="parse"> <callback name="parse"> <return-value transfer-ownership="none"> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="rc_style" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> <parameter name="settings" transfer-ownership="none"> <type name="Settings" c:type="GtkSettings*"/> </parameter> <parameter name="scanner" transfer-ownership="none"> <type name="GLib.Scanner" c:type="GScanner*"/> </parameter> </parameters> </callback> </field> <field name="merge"> <callback name="merge"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="dest" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> <parameter name="src" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> </parameters> </callback> </field> <field name="create_style" introspectable="0"> <callback name="create_style" introspectable="0"> <return-value> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <parameter name="rc_style" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="RcTokenType" deprecated="1" deprecated-version="3.0" glib:type-name="GtkRcTokenType" glib:get-type="gtk_rc_token_type_get_type" c:type="GtkRcTokenType"> <doc xml:space="preserve">The #GtkRcTokenType enumeration represents the tokens in the RC file. It is exposed so that theme engines can reuse these tokens when parsing the theme-engine specific portions of a RC file.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <member name="invalid" value="270" c:identifier="GTK_RC_TOKEN_INVALID" glib:nick="invalid"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="include" value="271" c:identifier="GTK_RC_TOKEN_INCLUDE" glib:nick="include"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="normal" value="272" c:identifier="GTK_RC_TOKEN_NORMAL" glib:nick="normal"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="active" value="273" c:identifier="GTK_RC_TOKEN_ACTIVE" glib:nick="active"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="prelight" value="274" c:identifier="GTK_RC_TOKEN_PRELIGHT" glib:nick="prelight"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="selected" value="275" c:identifier="GTK_RC_TOKEN_SELECTED" glib:nick="selected"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="insensitive" value="276" c:identifier="GTK_RC_TOKEN_INSENSITIVE" glib:nick="insensitive"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="fg" value="277" c:identifier="GTK_RC_TOKEN_FG" glib:nick="fg"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="bg" value="278" c:identifier="GTK_RC_TOKEN_BG" glib:nick="bg"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="text" value="279" c:identifier="GTK_RC_TOKEN_TEXT" glib:nick="text"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="base" value="280" c:identifier="GTK_RC_TOKEN_BASE" glib:nick="base"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="xthickness" value="281" c:identifier="GTK_RC_TOKEN_XTHICKNESS" glib:nick="xthickness"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="ythickness" value="282" c:identifier="GTK_RC_TOKEN_YTHICKNESS" glib:nick="ythickness"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="font" value="283" c:identifier="GTK_RC_TOKEN_FONT" glib:nick="font"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="fontset" value="284" c:identifier="GTK_RC_TOKEN_FONTSET" glib:nick="fontset"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="font_name" value="285" c:identifier="GTK_RC_TOKEN_FONT_NAME" glib:nick="font-name"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="bg_pixmap" value="286" c:identifier="GTK_RC_TOKEN_BG_PIXMAP" glib:nick="bg-pixmap"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="pixmap_path" value="287" c:identifier="GTK_RC_TOKEN_PIXMAP_PATH" glib:nick="pixmap-path"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="style" value="288" c:identifier="GTK_RC_TOKEN_STYLE" glib:nick="style"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="binding" value="289" c:identifier="GTK_RC_TOKEN_BINDING" glib:nick="binding"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="bind" value="290" c:identifier="GTK_RC_TOKEN_BIND" glib:nick="bind"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="widget" value="291" c:identifier="GTK_RC_TOKEN_WIDGET" glib:nick="widget"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="widget_class" value="292" c:identifier="GTK_RC_TOKEN_WIDGET_CLASS" glib:nick="widget-class"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="class" value="293" c:identifier="GTK_RC_TOKEN_CLASS" glib:nick="class"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="lowest" value="294" c:identifier="GTK_RC_TOKEN_LOWEST" glib:nick="lowest"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="gtk" value="295" c:identifier="GTK_RC_TOKEN_GTK" glib:nick="gtk"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="application" value="296" c:identifier="GTK_RC_TOKEN_APPLICATION" glib:nick="application"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="theme" value="297" c:identifier="GTK_RC_TOKEN_THEME" glib:nick="theme"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="rc" value="298" c:identifier="GTK_RC_TOKEN_RC" glib:nick="rc"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="highest" value="299" c:identifier="GTK_RC_TOKEN_HIGHEST" glib:nick="highest"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="engine" value="300" c:identifier="GTK_RC_TOKEN_ENGINE" glib:nick="engine"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="module_path" value="301" c:identifier="GTK_RC_TOKEN_MODULE_PATH" glib:nick="module-path"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="im_module_path" value="302" c:identifier="GTK_RC_TOKEN_IM_MODULE_PATH" glib:nick="im-module-path"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="im_module_file" value="303" c:identifier="GTK_RC_TOKEN_IM_MODULE_FILE" glib:nick="im-module-file"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="stock" value="304" c:identifier="GTK_RC_TOKEN_STOCK" glib:nick="stock"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="ltr" value="305" c:identifier="GTK_RC_TOKEN_LTR" glib:nick="ltr"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="rtl" value="306" c:identifier="GTK_RC_TOKEN_RTL" glib:nick="rtl"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="color" value="307" c:identifier="GTK_RC_TOKEN_COLOR" glib:nick="color"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="unbind" value="308" c:identifier="GTK_RC_TOKEN_UNBIND" glib:nick="unbind"> <doc xml:space="preserve">Deprecated</doc> </member> <member name="last" value="309" c:identifier="GTK_RC_TOKEN_LAST" glib:nick="last"> <doc xml:space="preserve">Deprecated</doc> </member> </enumeration> <class name="RecentAction" c:symbol-prefix="recent_action" c:type="GtkRecentAction" parent="Action" glib:type-name="GtkRecentAction" glib:get-type="gtk_recent_action_get_type" glib:type-struct="RecentActionClass"> <doc xml:space="preserve">A #GtkRecentAction represents a list of recently used files, which can be shown by widgets such as #GtkRecentChooserDialog or #GtkRecentChooserMenu. To construct a submenu showing recently used files, use a #GtkRecentAction as the action for a <menuitem>. To construct a menu toolbutton showing the recently used files in the popup menu, use a #GtkRecentAction as the action for a <toolitem> element.</doc> <implements name="Buildable"/> <implements name="RecentChooser"/> <constructor name="new" c:identifier="gtk_recent_action_new" version="2.12" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkRecentAction object. To add the action to a #GtkActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the newly created #GtkRecentAction.</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">a unique name for the action</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the label displayed in menu items and on buttons, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="tooltip" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a tooltip for the action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="stock_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the stock icon to display in widgets representing the action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_for_manager" c:identifier="gtk_recent_action_new_for_manager" version="2.12" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkRecentAction object. To add the action to a #GtkActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the newly created #GtkRecentAction</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">a unique name for the action</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the label displayed in menu items and on buttons, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="tooltip" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a tooltip for the action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="stock_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the stock icon to display in widgets representing the action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="manager" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkRecentManager, or %NULL for using the default #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </parameter> </parameters> </constructor> <method name="get_show_numbers" c:identifier="gtk_recent_action_get_show_numbers" version="2.12" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the value set by gtk_recent_chooser_menu_set_show_numbers().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if numbers should be shown.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentAction</doc> <type name="RecentAction" c:type="GtkRecentAction*"/> </instance-parameter> </parameters> </method> <method name="set_show_numbers" c:identifier="gtk_recent_action_set_show_numbers" version="2.12" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets whether a number should be added to the items shown by the widgets representing @action. The numbers are shown to provide a unique character for a mnemonic to be used inside the menu item's label. Only the first ten items get a number to avoid clashes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentAction</doc> <type name="RecentAction" c:type="GtkRecentAction*"/> </instance-parameter> <parameter name="show_numbers" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the shown items should be numbered</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="show-numbers" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the items should be displayed with a number.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Action" c:type="GtkAction"/> </field> <field name="priv" readable="0" private="1"> <type name="RecentActionPrivate" c:type="GtkRecentActionPrivate*"/> </field> </class> <record name="RecentActionClass" c:type="GtkRecentActionClass" glib:is-gtype-struct-for="RecentAction"> <field name="parent_class"> <type name="ActionClass" c:type="GtkActionClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="RecentActionPrivate" c:type="GtkRecentActionPrivate" disguised="1"> </record> <interface name="RecentChooser" c:symbol-prefix="recent_chooser" c:type="GtkRecentChooser" glib:type-name="GtkRecentChooser" glib:get-type="gtk_recent_chooser_get_type" glib:type-struct="RecentChooserIface"> <doc xml:space="preserve">#GtkRecentChooser is an interface that can be implemented by widgets displaying the list of recently used files. In GTK+, the main objects that implement this interface are #GtkRecentChooserWidget, #GtkRecentChooserDialog and #GtkRecentChooserMenu. Recently used files are supported since GTK+ 2.10.</doc> <virtual-method name="add_filter" invoker="add_filter" version="2.10"> <doc xml:space="preserve">Adds @filter to the list of #GtkRecentFilter objects held by @chooser. If no previous filter objects were defined, this function will call gtk_recent_chooser_set_filter().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_current_uri" invoker="get_current_uri" version="2.10"> <doc xml:space="preserve">Gets the URI currently selected by @chooser.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated string holding a URI.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_items" invoker="get_items" version="2.10"> <doc xml:space="preserve">Gets the list of recently used resources in form of #GtkRecentInfo objects. The return value of this function is affected by the âsort-typeâ and âlimitâ properties of @chooser.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly allocated list of #GtkRecentInfo objects. You should use gtk_recent_info_unref() on every item of the list, and then free the list itself using g_list_free().</doc> <type name="GLib.List" c:type="GList*"> <type name="RecentInfo"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_recent_manager" introspectable="0"> <return-value> <type name="RecentManager" c:type="GtkRecentManager*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="item_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="list_filters" invoker="list_filters" version="2.10"> <doc xml:space="preserve">Gets the #GtkRecentFilter objects held by @chooser.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">A singly linked list of #GtkRecentFilter objects. You should just free the returned list using g_slist_free().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RecentFilter"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="remove_filter" invoker="remove_filter" version="2.10"> <doc xml:space="preserve">Removes @filter from the list of #GtkRecentFilter objects held by @chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="select_all" invoker="select_all" version="2.10"> <doc xml:space="preserve">Selects all the items inside @chooser, if the @chooser supports multiple selection.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="select_uri" invoker="select_uri" version="2.10" throws="1"> <doc xml:space="preserve">Selects @uri inside @chooser.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @uri was found.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="selection_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="set_current_uri" invoker="set_current_uri" version="2.10" throws="1"> <doc xml:space="preserve">Sets @uri as the current URI for @chooser.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the URI was found.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_sort_func" invoker="set_sort_func" version="2.10"> <doc xml:space="preserve">Sets the comparison function used when sorting to be @sort_func. If the @chooser has the sort type set to #GTK_RECENT_SORT_CUSTOM then the chooser will sort using this function. To the comparison function will be passed two #GtkRecentInfo structs and @sort_data; @sort_func should return a positive integer if the first item comes before the second, zero if the two items are equal and a negative integer if the first item comes after the second.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">the comparison function</doc> <type name="RecentSortFunc" c:type="GtkRecentSortFunc"/> </parameter> <parameter name="sort_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="data_destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">destroy notifier for @sort_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </virtual-method> <virtual-method name="unselect_all" invoker="unselect_all" version="2.10"> <doc xml:space="preserve">Unselects all the items inside @chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="unselect_uri" invoker="unselect_uri" version="2.10"> <doc xml:space="preserve">Unselects @uri inside @chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="add_filter" c:identifier="gtk_recent_chooser_add_filter" version="2.10"> <doc xml:space="preserve">Adds @filter to the list of #GtkRecentFilter objects held by @chooser. If no previous filter objects were defined, this function will call gtk_recent_chooser_set_filter().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </parameter> </parameters> </method> <method name="get_current_item" c:identifier="gtk_recent_chooser_get_current_item" version="2.10"> <doc xml:space="preserve">Gets the #GtkRecentInfo currently selected by @chooser.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GtkRecentInfo. Use gtk_recent_info_unref() when when you have finished using it.</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_current_uri" c:identifier="gtk_recent_chooser_get_current_uri" version="2.10"> <doc xml:space="preserve">Gets the URI currently selected by @chooser.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated string holding a URI.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_filter" c:identifier="gtk_recent_chooser_get_filter" version="2.10"> <doc xml:space="preserve">Gets the #GtkRecentFilter object currently used by @chooser to affect the display of the recently used resources.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter object.</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_items" c:identifier="gtk_recent_chooser_get_items" version="2.10"> <doc xml:space="preserve">Gets the list of recently used resources in form of #GtkRecentInfo objects. The return value of this function is affected by the âsort-typeâ and âlimitâ properties of @chooser.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly allocated list of #GtkRecentInfo objects. You should use gtk_recent_info_unref() on every item of the list, and then free the list itself using g_list_free().</doc> <type name="GLib.List" c:type="GList*"> <type name="RecentInfo"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_limit" c:identifier="gtk_recent_chooser_get_limit" version="2.10"> <doc xml:space="preserve">Gets the number of items returned by gtk_recent_chooser_get_items() and gtk_recent_chooser_get_uris().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A positive integer, or -1 meaning that all items are returned.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_local_only" c:identifier="gtk_recent_chooser_get_local_only" version="2.10"> <doc xml:space="preserve">Gets whether only local resources should be shown in the recently used resources selector. See gtk_recent_chooser_set_local_only()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if only local resources should be shown.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_select_multiple" c:identifier="gtk_recent_chooser_get_select_multiple" version="2.10"> <doc xml:space="preserve">Gets whether @chooser can select multiple items.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @chooser can select more than one item.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_show_icons" c:identifier="gtk_recent_chooser_get_show_icons" version="2.10"> <doc xml:space="preserve">Retrieves whether @chooser should show an icon near the resource.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the icons should be displayed, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_show_not_found" c:identifier="gtk_recent_chooser_get_show_not_found" version="2.10"> <doc xml:space="preserve">Retrieves whether @chooser should show the recently used resources that were not found.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the resources not found should be displayed, and %FALSE otheriwse.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_show_private" c:identifier="gtk_recent_chooser_get_show_private" version="2.10"> <doc xml:space="preserve">Returns whether @chooser should display recently used resources registered as private.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the recent chooser should show private items, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_show_tips" c:identifier="gtk_recent_chooser_get_show_tips" version="2.10"> <doc xml:space="preserve">Gets whether @chooser should display tooltips containing the full path of a recently user resource.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the recent chooser should show tooltips, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_sort_type" c:identifier="gtk_recent_chooser_get_sort_type" version="2.10"> <doc xml:space="preserve">Gets the value set by gtk_recent_chooser_set_sort_type().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the sorting order of the @chooser.</doc> <type name="RecentSortType" c:type="GtkRecentSortType"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="get_uris" c:identifier="gtk_recent_chooser_get_uris" version="2.10"> <doc xml:space="preserve">Gets the URI of the recently used resources. The return value of this function is affected by the âsort-typeâ and âlimitâ properties of @chooser. Since the returned array is %NULL terminated, @length may be %NULL.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve"> A newly allocated, %NULL-terminated array of strings. Use g_strfreev() to free it.</doc> <array length="0" zero-terminated="1" c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for a the length of the URI list, or %NULL</doc> <type name="gsize" c:type="gsize*"/> </parameter> </parameters> </method> <method name="list_filters" c:identifier="gtk_recent_chooser_list_filters" version="2.10"> <doc xml:space="preserve">Gets the #GtkRecentFilter objects held by @chooser.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">A singly linked list of #GtkRecentFilter objects. You should just free the returned list using g_slist_free().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RecentFilter"/> </type> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="remove_filter" c:identifier="gtk_recent_chooser_remove_filter" version="2.10"> <doc xml:space="preserve">Removes @filter from the list of #GtkRecentFilter objects held by @chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </parameter> </parameters> </method> <method name="select_all" c:identifier="gtk_recent_chooser_select_all" version="2.10"> <doc xml:space="preserve">Selects all the items inside @chooser, if the @chooser supports multiple selection.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="select_uri" c:identifier="gtk_recent_chooser_select_uri" version="2.10" throws="1"> <doc xml:space="preserve">Selects @uri inside @chooser.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @uri was found.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_current_uri" c:identifier="gtk_recent_chooser_set_current_uri" version="2.10" throws="1"> <doc xml:space="preserve">Sets @uri as the current URI for @chooser.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the URI was found.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_filter" c:identifier="gtk_recent_chooser_set_filter" version="2.10"> <doc xml:space="preserve">Sets @filter as the current #GtkRecentFilter object used by @chooser to affect the displayed recently used resources.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="filter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </parameter> </parameters> </method> <method name="set_limit" c:identifier="gtk_recent_chooser_set_limit" version="2.10"> <doc xml:space="preserve">Sets the number of items that should be returned by gtk_recent_chooser_get_items() and gtk_recent_chooser_get_uris().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="limit" transfer-ownership="none"> <doc xml:space="preserve">a positive integer, or -1 for all items</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_local_only" c:identifier="gtk_recent_chooser_set_local_only" version="2.10"> <doc xml:space="preserve">Sets whether only local resources, that is resources using the file:// URI scheme, should be shown in the recently used resources selector. If @local_only is %TRUE (the default) then the shown resources are guaranteed to be accessible through the operating system native file system.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="local_only" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if only local files can be shown</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_select_multiple" c:identifier="gtk_recent_chooser_set_select_multiple" version="2.10"> <doc xml:space="preserve">Sets whether @chooser can select multiple items.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="select_multiple" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @chooser can select more than one item</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_icons" c:identifier="gtk_recent_chooser_set_show_icons" version="2.10"> <doc xml:space="preserve">Sets whether @chooser should show an icon near the resource when displaying it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="show_icons" transfer-ownership="none"> <doc xml:space="preserve">whether to show an icon near the resource</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_not_found" c:identifier="gtk_recent_chooser_set_show_not_found" version="2.10"> <doc xml:space="preserve">Sets whether @chooser should display the recently used resources that it didnât find. This only applies to local resources.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="show_not_found" transfer-ownership="none"> <doc xml:space="preserve">whether to show the local items we didnât find</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_private" c:identifier="gtk_recent_chooser_set_show_private" version="2.10"> <doc xml:space="preserve">Whether to show recently used resources marked registered as private.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="show_private" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to show private items, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_tips" c:identifier="gtk_recent_chooser_set_show_tips" version="2.10"> <doc xml:space="preserve">Sets whether to show a tooltips containing the full path of each recently used resource in a #GtkRecentChooser widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="show_tips" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if tooltips should be shown</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_sort_func" c:identifier="gtk_recent_chooser_set_sort_func" version="2.10"> <doc xml:space="preserve">Sets the comparison function used when sorting to be @sort_func. If the @chooser has the sort type set to #GTK_RECENT_SORT_CUSTOM then the chooser will sort using this function. To the comparison function will be passed two #GtkRecentInfo structs and @sort_data; @sort_func should return a positive integer if the first item comes before the second, zero if the two items are equal and a negative integer if the first item comes after the second.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">the comparison function</doc> <type name="RecentSortFunc" c:type="GtkRecentSortFunc"/> </parameter> <parameter name="sort_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="data_destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">destroy notifier for @sort_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_sort_type" c:identifier="gtk_recent_chooser_set_sort_type" version="2.10"> <doc xml:space="preserve">Changes the sorting order of the recently used resources list displayed by @chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="sort_type" transfer-ownership="none"> <doc xml:space="preserve">sort order that the chooser should use</doc> <type name="RecentSortType" c:type="GtkRecentSortType"/> </parameter> </parameters> </method> <method name="unselect_all" c:identifier="gtk_recent_chooser_unselect_all" version="2.10"> <doc xml:space="preserve">Unselects all the items inside @chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> </parameters> </method> <method name="unselect_uri" c:identifier="gtk_recent_chooser_unselect_uri" version="2.10"> <doc xml:space="preserve">Unselects @uri inside @chooser.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="filter" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkRecentFilter object to be used when displaying the recently used resources.</doc> <type name="RecentFilter"/> </property> <property name="limit" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The maximum number of recently used resources to be displayed, or -1 to display all items.</doc> <type name="gint" c:type="gint"/> </property> <property name="local-only" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether this #GtkRecentChooser should display only local (file:) resources.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="recent-manager" version="2.10" readable="0" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The #GtkRecentManager instance used by the #GtkRecentChooser to display the list of recently used resources.</doc> <type name="RecentManager"/> </property> <property name="select-multiple" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Allow the user to select multiple resources.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-icons" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether this #GtkRecentChooser should display an icon near the item.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-not-found" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether this #GtkRecentChooser should display the recently used resources even if not present anymore. Setting this to %FALSE will perform a potentially expensive check on every local resource (every remote resource will always be displayed).</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-private" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-tips" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether this #GtkRecentChooser should display a tooltip containing the full path of the recently used resources.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="sort-type" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sorting order to be used when displaying the recently used resources.</doc> <type name="RecentSortType"/> </property> <glib:signal name="item-activated" when="last" version="2.10"> <doc xml:space="preserve">This signal is emitted when the user "activates" a recent item in the recent chooser. This can happen by double-clicking on an item in the recently used resources list, or by pressing `Enter`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="selection-changed" when="last" version="2.10"> <doc xml:space="preserve">This signal is emitted when there is a change in the set of selected recently used resources. This can happen when a user modifies the selection with the mouse or the keyboard, or when explicitly calling functions to change the selection.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </interface> <class name="RecentChooserDialog" c:symbol-prefix="recent_chooser_dialog" c:type="GtkRecentChooserDialog" parent="Dialog" glib:type-name="GtkRecentChooserDialog" glib:get-type="gtk_recent_chooser_dialog_get_type" glib:type-struct="RecentChooserDialogClass"> <doc xml:space="preserve">#GtkRecentChooserDialog is a dialog box suitable for displaying the recently used documents. This widgets works by putting a #GtkRecentChooserWidget inside a #GtkDialog. It exposes the #GtkRecentChooserIface interface, so you can use all the #GtkRecentChooser functions on the recent chooser dialog as well as those for #GtkDialog. Note that #GtkRecentChooserDialog does not have any methods of its own. Instead, you should use the functions that work on a #GtkRecentChooser. ## Typical usage ## {#gtkrecentchooser-typical-usage} In the simplest of cases, you can use the following code to use a #GtkRecentChooserDialog to select a recently used file: |[<!-- language="C" --> GtkWidget *dialog; gint res; dialog = gtk_recent_chooser_dialog_new ("Recent Documents", parent_window, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); res = gtk_dialog_run (GTK_DIALOG (dialog)); if (res == GTK_RESPONSE_ACCEPT) { GtkRecentInfo *info; GtkRecentChooser *chooser = GTK_RECENT_CHOOSER (dialog); info = gtk_recent_chooser_get_current_item (chooser); open_file (gtk_recent_info_get_uri (info)); gtk_recent_info_unref (info); } gtk_widget_destroy (dialog); ]| Recently used files are supported since GTK+ 2.10.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="RecentChooser"/> <constructor name="new" c:identifier="gtk_recent_chooser_dialog_new" version="2.10" introspectable="0"> <doc xml:space="preserve">Creates a new #GtkRecentChooserDialog. This function is analogous to gtk_dialog_new_with_buttons().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRecentChooserDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Title of the dialog, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Transient parent of the dialog, or %NULL,</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="first_button_text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">stock ID or text to go in the first button, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">response ID for the first button, then additional (button, id) pairs, ending with %NULL</doc> <varargs/> </parameter> </parameters> </constructor> <constructor name="new_for_manager" c:identifier="gtk_recent_chooser_dialog_new_for_manager" version="2.10" introspectable="0"> <doc xml:space="preserve">Creates a new #GtkRecentChooserDialog with a specified recent manager. This is useful if you have implemented your own recent manager, or if you have a customized instance of a #GtkRecentManager object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRecentChooserDialog</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Title of the dialog, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Transient parent of the dialog, or %NULL,</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </parameter> <parameter name="first_button_text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">stock ID or text to go in the first button, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">response ID for the first button, then additional (button, id) pairs, ending with %NULL</doc> <varargs/> </parameter> </parameters> </constructor> <field name="parent_instance"> <type name="Dialog" c:type="GtkDialog"/> </field> <field name="priv" readable="0" private="1"> <type name="RecentChooserDialogPrivate" c:type="GtkRecentChooserDialogPrivate*"/> </field> </class> <record name="RecentChooserDialogClass" c:type="GtkRecentChooserDialogClass" glib:is-gtype-struct-for="RecentChooserDialog"> <field name="parent_class"> <type name="DialogClass" c:type="GtkDialogClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="RecentChooserDialogPrivate" c:type="GtkRecentChooserDialogPrivate" disguised="1"> </record> <enumeration name="RecentChooserError" version="2.10" glib:type-name="GtkRecentChooserError" glib:get-type="gtk_recent_chooser_error_get_type" c:type="GtkRecentChooserError" glib:error-domain="gtk-recent-chooser-error-quark"> <doc xml:space="preserve">These identify the various errors that can occur while calling #GtkRecentChooser functions.</doc> <member name="not_found" value="0" c:identifier="GTK_RECENT_CHOOSER_ERROR_NOT_FOUND" glib:nick="not-found"> <doc xml:space="preserve">Indicates that a file does not exist</doc> </member> <member name="invalid_uri" value="1" c:identifier="GTK_RECENT_CHOOSER_ERROR_INVALID_URI" glib:nick="invalid-uri"> <doc xml:space="preserve">Indicates a malformed URI</doc> </member> <function name="quark" c:identifier="gtk_recent_chooser_error_quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> </enumeration> <record name="RecentChooserIface" c:type="GtkRecentChooserIface" glib:is-gtype-struct-for="RecentChooser"> <field name="base_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="set_current_uri"> <callback name="set_current_uri" throws="1"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the URI was found.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="get_current_uri"> <callback name="get_current_uri"> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated string holding a URI.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> </parameters> </callback> </field> <field name="select_uri"> <callback name="select_uri" throws="1"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @uri was found.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="unselect_uri"> <callback name="unselect_uri"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="select_all"> <callback name="select_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> </parameters> </callback> </field> <field name="unselect_all"> <callback name="unselect_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> </parameters> </callback> </field> <field name="get_items"> <callback name="get_items"> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly allocated list of #GtkRecentInfo objects. You should use gtk_recent_info_unref() on every item of the list, and then free the list itself using g_list_free().</doc> <type name="GLib.List" c:type="GList*"> <type name="RecentInfo"/> </type> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> </parameters> </callback> </field> <field name="get_recent_manager" introspectable="0"> <callback name="get_recent_manager" introspectable="0"> <return-value> <type name="RecentManager" c:type="GtkRecentManager*"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> </parameters> </callback> </field> <field name="add_filter"> <callback name="add_filter"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> <parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </parameter> </parameters> </callback> </field> <field name="remove_filter"> <callback name="remove_filter"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> <parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </parameter> </parameters> </callback> </field> <field name="list_filters"> <callback name="list_filters"> <return-value transfer-ownership="container"> <doc xml:space="preserve">A singly linked list of #GtkRecentFilter objects. You should just free the returned list using g_slist_free().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="RecentFilter"/> </type> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> </parameters> </callback> </field> <field name="set_sort_func"> <callback name="set_sort_func"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooser</doc> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">the comparison function</doc> <type name="RecentSortFunc" c:type="GtkRecentSortFunc"/> </parameter> <parameter name="sort_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="data_destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">destroy notifier for @sort_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </callback> </field> <field name="item_activated"> <callback name="item_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> </parameters> </callback> </field> <field name="selection_changed"> <callback name="selection_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="chooser" transfer-ownership="none"> <type name="RecentChooser" c:type="GtkRecentChooser*"/> </parameter> </parameters> </callback> </field> </record> <class name="RecentChooserMenu" c:symbol-prefix="recent_chooser_menu" c:type="GtkRecentChooserMenu" parent="Menu" glib:type-name="GtkRecentChooserMenu" glib:get-type="gtk_recent_chooser_menu_get_type" glib:type-struct="RecentChooserMenuClass"> <doc xml:space="preserve">#GtkRecentChooserMenu is a widget suitable for displaying recently used files inside a menu. It can be used to set a sub-menu of a #GtkMenuItem using gtk_menu_item_set_submenu(), or as the menu of a #GtkMenuToolButton. Note that #GtkRecentChooserMenu does not have any methods of its own. Instead, you should use the functions that work on a #GtkRecentChooser. Note also that #GtkRecentChooserMenu does not support multiple filters, as it has no way to let the user choose between them as the #GtkRecentChooserWidget and #GtkRecentChooserDialog widgets do. Thus using gtk_recent_chooser_add_filter() on a #GtkRecentChooserMenu widget will yield the same effects as using gtk_recent_chooser_set_filter(), replacing any currently set filter with the supplied filter; gtk_recent_chooser_remove_filter() will remove any currently set #GtkRecentFilter object and will unset the current filter; gtk_recent_chooser_list_filters() will return a list containing a single #GtkRecentFilter object. Recently used files are supported since GTK+ 2.10.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Activatable"/> <implements name="Buildable"/> <implements name="RecentChooser"/> <constructor name="new" c:identifier="gtk_recent_chooser_menu_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkRecentChooserMenu widget. This kind of widget shows the list of recently used resources as a menu, each item as a menu item. Each item inside the menu might have an icon, representing its MIME type, and a number, for mnemonic access. This widget implements the #GtkRecentChooser interface. This widget creates its own #GtkRecentManager object. See the gtk_recent_chooser_menu_new_for_manager() function to know how to create a #GtkRecentChooserMenu widget bound to another #GtkRecentManager object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRecentChooserMenu</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_for_manager" c:identifier="gtk_recent_chooser_menu_new_for_manager" version="2.10"> <doc xml:space="preserve">Creates a new #GtkRecentChooserMenu widget using @manager as the underlying recently used resources manager. This is useful if you have implemented your own recent manager, or if you have a customized instance of a #GtkRecentManager object or if you wish to share a common #GtkRecentManager object among multiple #GtkRecentChooser widgets.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRecentChooserMenu, bound to @manager.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </parameter> </parameters> </constructor> <method name="get_show_numbers" c:identifier="gtk_recent_chooser_menu_get_show_numbers" version="2.10"> <doc xml:space="preserve">Returns the value set by gtk_recent_chooser_menu_set_show_numbers().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if numbers should be shown.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooserMenu</doc> <type name="RecentChooserMenu" c:type="GtkRecentChooserMenu*"/> </instance-parameter> </parameters> </method> <method name="set_show_numbers" c:identifier="gtk_recent_chooser_menu_set_show_numbers" version="2.10"> <doc xml:space="preserve">Sets whether a number should be added to the items of @menu. The numbers are shown to provide a unique character for a mnemonic to be used inside ten menu itemâs label. Only the first the items get a number to avoid clashes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentChooserMenu</doc> <type name="RecentChooserMenu" c:type="GtkRecentChooserMenu*"/> </instance-parameter> <parameter name="show_numbers" transfer-ownership="none"> <doc xml:space="preserve">whether to show numbers</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="show-numbers" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the first ten items in the menu should be prepended by a number acting as a unique mnemonic.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="Menu" c:type="GtkMenu"/> </field> <field name="priv" readable="0" private="1"> <type name="RecentChooserMenuPrivate" c:type="GtkRecentChooserMenuPrivate*"/> </field> </class> <record name="RecentChooserMenuClass" c:type="GtkRecentChooserMenuClass" glib:is-gtype-struct-for="RecentChooserMenu"> <field name="parent_class"> <type name="MenuClass" c:type="GtkMenuClass"/> </field> <field name="gtk_recent1"> <callback name="gtk_recent1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="gtk_recent2"> <callback name="gtk_recent2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="gtk_recent3"> <callback name="gtk_recent3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="gtk_recent4"> <callback name="gtk_recent4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="RecentChooserMenuPrivate" c:type="GtkRecentChooserMenuPrivate" disguised="1"> </record> <class name="RecentChooserWidget" c:symbol-prefix="recent_chooser_widget" c:type="GtkRecentChooserWidget" parent="Box" glib:type-name="GtkRecentChooserWidget" glib:get-type="gtk_recent_chooser_widget_get_type" glib:type-struct="RecentChooserWidgetClass"> <doc xml:space="preserve">#GtkRecentChooserWidget is a widget suitable for selecting recently used files. It is the main building block of a #GtkRecentChooserDialog. Most applications will only need to use the latter; you can use #GtkRecentChooserWidget as part of a larger window if you have special needs. Note that #GtkRecentChooserWidget does not have any methods of its own. Instead, you should use the functions that work on a #GtkRecentChooser. Recently used files are supported since GTK+ 2.10.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <implements name="RecentChooser"/> <constructor name="new" c:identifier="gtk_recent_chooser_widget_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkRecentChooserWidget object. This is an embeddable widget used to access the recently used resources list.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRecentChooserWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_for_manager" c:identifier="gtk_recent_chooser_widget_new_for_manager" version="2.10"> <doc xml:space="preserve">Creates a new #GtkRecentChooserWidget with a specified recent manager. This is useful if you have implemented your own recent manager, or if you have a customized instance of a #GtkRecentManager object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRecentChooserWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </parameter> </parameters> </constructor> <field name="parent_instance"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="RecentChooserWidgetPrivate" c:type="GtkRecentChooserWidgetPrivate*"/> </field> </class> <record name="RecentChooserWidgetClass" c:type="GtkRecentChooserWidgetClass" glib:is-gtype-struct-for="RecentChooserWidget"> <field name="parent_class"> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="RecentChooserWidgetPrivate" c:type="GtkRecentChooserWidgetPrivate" disguised="1"> </record> <record name="RecentData" c:type="GtkRecentData"> <doc xml:space="preserve">Meta-data to be passed to gtk_recent_manager_add_full() when registering a recently used resource.</doc> <field name="display_name" writable="1"> <doc xml:space="preserve">a UTF-8 encoded string, containing the name of the recently used resource to be displayed, or %NULL;</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="description" writable="1"> <doc xml:space="preserve">a UTF-8 encoded string, containing a short description of the resource, or %NULL;</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="mime_type" writable="1"> <doc xml:space="preserve">the MIME type of the resource;</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="app_name" writable="1"> <doc xml:space="preserve">the name of the application that is registering this recently used resource;</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="app_exec" writable="1"> <doc xml:space="preserve">command line used to launch this resource; may contain the â\%fâ and â\%uâ escape characters which will be expanded to the resource file path and URI respectively when the command line is retrieved;</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="groups" writable="1"> <doc xml:space="preserve">a vector of strings containing groups names;</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </field> <field name="is_private" writable="1"> <doc xml:space="preserve">whether this resource should be displayed only by the applications that have registered it or not.</doc> <type name="gboolean" c:type="gboolean"/> </field> </record> <class name="RecentFilter" c:symbol-prefix="recent_filter" c:type="GtkRecentFilter" parent="GObject.InitiallyUnowned" glib:type-name="GtkRecentFilter" glib:get-type="gtk_recent_filter_get_type"> <doc xml:space="preserve">A #GtkRecentFilter can be used to restrict the files being shown in a #GtkRecentChooser. Files can be filtered based on their name (with gtk_recent_filter_add_pattern()), on their mime type (with gtk_file_filter_add_mime_type()), on the application that has registered them (with gtk_recent_filter_add_application()), or by a custom filter function (with gtk_recent_filter_add_custom()). Filtering by mime type handles aliasing and subclassing of mime types; e.g. a filter for text/plain also matches a file with mime type application/rtf, since application/rtf is a subclass of text/plain. Note that #GtkRecentFilter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/\*. Normally, filters are used by adding them to a #GtkRecentChooser, see gtk_recent_chooser_add_filter(), but it is also possible to manually use a filter on a file with gtk_recent_filter_filter(). Recently used files are supported since GTK+ 2.10. ## GtkRecentFilter as GtkBuildable The GtkRecentFilter implementation of the GtkBuildable interface supports adding rules using the <mime-types>, <patterns> and <applications> elements and listing the rules within. Specifying a <mime-type>, <pattern> or <application> has the same effect as calling gtk_recent_filter_add_mime_type(), gtk_recent_filter_add_pattern() or gtk_recent_filter_add_application(). An example of a UI definition fragment specifying GtkRecentFilter rules: |[ <object class="GtkRecentFilter"> <mime-types> <mime-type>text/plain</mime-type> <mime-type>image/png</mime-type> </mime-types> <patterns> <pattern>*.txt</pattern> <pattern>*.png</pattern> </patterns> <applications> <application>gimp</application> <application>gedit</application> <application>glade</application> </applications> </object> ]|</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_recent_filter_new" version="2.10"> <doc xml:space="preserve">Creates a new #GtkRecentFilter with no rules added to it. Such filter does not accept any recently used resources, so is not particularly useful until you add rules with gtk_recent_filter_add_pattern(), gtk_recent_filter_add_mime_type(), gtk_recent_filter_add_application(), gtk_recent_filter_add_age(). To create a filter that accepts any recently used resource, use: |[<!-- language="C" --> GtkRecentFilter *filter = gtk_recent_filter_new (); gtk_recent_filter_add_pattern (filter, "*"); ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </return-value> </constructor> <method name="add_age" c:identifier="gtk_recent_filter_add_age" version="2.10"> <doc xml:space="preserve">Adds a rule that allows resources based on their age - that is, the number of days elapsed since they were last modified.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> <parameter name="days" transfer-ownership="none"> <doc xml:space="preserve">number of days</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="add_application" c:identifier="gtk_recent_filter_add_application" version="2.10"> <doc xml:space="preserve">Adds a rule that allows resources based on the name of the application that has registered them.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> <parameter name="application" transfer-ownership="none"> <doc xml:space="preserve">an application name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_custom" c:identifier="gtk_recent_filter_add_custom" version="2.10"> <doc xml:space="preserve">Adds a rule to a filter that allows resources based on a custom callback function. The bitfield @needed which is passed in provides information about what sorts of information that the filter function needs; this allows GTK+ to avoid retrieving expensive information when it isnât needed by the filter.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> <parameter name="needed" transfer-ownership="none"> <doc xml:space="preserve">bitfield of flags indicating the information that the custom filter function needs.</doc> <type name="RecentFilterFlags" c:type="GtkRecentFilterFlags"/> </parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">callback function; if the function returns %TRUE, then the file will be displayed.</doc> <type name="RecentFilterFunc" c:type="GtkRecentFilterFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="data_destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function to call to free @data when it is no longer needed.</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="add_group" c:identifier="gtk_recent_filter_add_group" version="2.10"> <doc xml:space="preserve">Adds a rule that allows resources based on the name of the group to which they belong</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> <parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a group name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_mime_type" c:identifier="gtk_recent_filter_add_mime_type" version="2.10"> <doc xml:space="preserve">Adds a rule that allows resources based on their registered MIME type.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> <parameter name="mime_type" transfer-ownership="none"> <doc xml:space="preserve">a MIME type</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_pattern" c:identifier="gtk_recent_filter_add_pattern" version="2.10"> <doc xml:space="preserve">Adds a rule that allows resources based on a pattern matching their display name.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> <parameter name="pattern" transfer-ownership="none"> <doc xml:space="preserve">a file pattern</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_pixbuf_formats" c:identifier="gtk_recent_filter_add_pixbuf_formats" version="2.10"> <doc xml:space="preserve">Adds a rule allowing image files in the formats supported by GdkPixbuf.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> </parameters> </method> <method name="filter" c:identifier="gtk_recent_filter_filter" version="2.10"> <doc xml:space="preserve">Tests whether a file should be displayed according to @filter. The #GtkRecentFilterInfo @filter_info should include the fields returned from gtk_recent_filter_get_needed(), and must set the #GtkRecentFilterInfo.contains field of @filter_info to indicate which fields have been set. This function will not typically be used by applications; it is intended principally for use in the implementation of #GtkRecentChooser.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the file should be displayed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> <parameter name="filter_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilterInfo containing information about a recently used resource</doc> <type name="RecentFilterInfo" c:type="const GtkRecentFilterInfo*"/> </parameter> </parameters> </method> <method name="get_name" c:identifier="gtk_recent_filter_get_name" version="2.10"> <doc xml:space="preserve">Gets the human-readable name for the filter. See gtk_recent_filter_set_name().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the name of the filter, or %NULL. The returned string is owned by the filter object and should not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> </parameters> </method> <method name="get_needed" c:identifier="gtk_recent_filter_get_needed" version="2.10"> <doc xml:space="preserve">Gets the fields that need to be filled in for the #GtkRecentFilterInfo passed to gtk_recent_filter_filter() This function will not typically be used by applications; it is intended principally for use in the implementation of #GtkRecentChooser.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">bitfield of flags indicating needed fields when calling gtk_recent_filter_filter()</doc> <type name="RecentFilterFlags" c:type="GtkRecentFilterFlags"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> </parameters> </method> <method name="set_name" c:identifier="gtk_recent_filter_set_name" version="2.10"> <doc xml:space="preserve">Sets the human-readable name of the filter; this is the string that will be displayed in the recently used resources selector user interface if there is a selectable list of filters.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilter</doc> <type name="RecentFilter" c:type="GtkRecentFilter*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">then human readable name of @filter</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> </class> <bitfield name="RecentFilterFlags" glib:type-name="GtkRecentFilterFlags" glib:get-type="gtk_recent_filter_flags_get_type" c:type="GtkRecentFilterFlags"> <doc xml:space="preserve">These flags indicate what parts of a #GtkRecentFilterInfo struct are filled or need to be filled.</doc> <member name="uri" value="1" c:identifier="GTK_RECENT_FILTER_URI" glib:nick="uri"> <doc xml:space="preserve">the URI of the file being tested</doc> </member> <member name="display_name" value="2" c:identifier="GTK_RECENT_FILTER_DISPLAY_NAME" glib:nick="display-name"> <doc xml:space="preserve">the string that will be used to display the file in the recent chooser</doc> </member> <member name="mime_type" value="4" c:identifier="GTK_RECENT_FILTER_MIME_TYPE" glib:nick="mime-type"> <doc xml:space="preserve">the mime type of the file</doc> </member> <member name="application" value="8" c:identifier="GTK_RECENT_FILTER_APPLICATION" glib:nick="application"> <doc xml:space="preserve">the list of applications that have registered the file</doc> </member> <member name="group" value="16" c:identifier="GTK_RECENT_FILTER_GROUP" glib:nick="group"> <doc xml:space="preserve">the groups to which the file belongs to</doc> </member> <member name="age" value="32" c:identifier="GTK_RECENT_FILTER_AGE" glib:nick="age"> <doc xml:space="preserve">the number of days elapsed since the file has been registered</doc> </member> </bitfield> <callback name="RecentFilterFunc" c:type="GtkRecentFilterFunc"> <doc xml:space="preserve">The type of function that is used with custom filters, see gtk_recent_filter_add_custom().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the file should be displayed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="filter_info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentFilterInfo that is filled according to the @needed flags passed to gtk_recent_filter_add_custom()</doc> <type name="RecentFilterInfo" c:type="const GtkRecentFilterInfo*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data passed to gtk_recent_filter_add_custom()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="RecentFilterInfo" c:type="GtkRecentFilterInfo"> <doc xml:space="preserve">A GtkRecentFilterInfo struct is used to pass information about the tested file to gtk_recent_filter_filter().</doc> <field name="contains" writable="1"> <doc xml:space="preserve">#GtkRecentFilterFlags to indicate which fields are set.</doc> <type name="RecentFilterFlags" c:type="GtkRecentFilterFlags"/> </field> <field name="uri" writable="1"> <doc xml:space="preserve">The URI of the file being tested.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="display_name" writable="1"> <doc xml:space="preserve">The string that will be used to display the file in the recent chooser.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="mime_type" writable="1"> <doc xml:space="preserve">MIME type of the file.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="applications" writable="1"> <doc xml:space="preserve">The list of applications that have registered the file.</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </field> <field name="groups" writable="1"> <doc xml:space="preserve">The groups to which the file belongs to.</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </field> <field name="age" writable="1"> <doc xml:space="preserve">The number of days elapsed since the file has been registered.</doc> <type name="gint" c:type="gint"/> </field> </record> <record name="RecentInfo" c:type="GtkRecentInfo" version="2.10" glib:type-name="GtkRecentInfo" glib:get-type="gtk_recent_info_get_type" c:symbol-prefix="recent_info"> <doc xml:space="preserve">#GtkRecentInfo-struct contains private data only, and should be accessed using the provided API. #GtkRecentInfo constains all the meta-data associated with an entry in the recently used files list.</doc> <method name="create_app_info" c:identifier="gtk_recent_info_create_app_info" throws="1"> <doc xml:space="preserve">Creates a #GAppInfo for the specified #GtkRecentInfo</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the newly created #GAppInfo, or %NULL. In case of error, @error will be set either with a %GTK_RECENT_MANAGER_ERROR or a %G_IO_ERROR</doc> <type name="Gio.AppInfo" c:type="GAppInfo*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> <parameter name="app_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">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</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="exists" c:identifier="gtk_recent_info_exists" version="2.10"> <doc xml:space="preserve">Checks whether the resource pointed by @info still exists. At the moment this check is done only on resources pointing to local files.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the resource exists</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_added" c:identifier="gtk_recent_info_get_added" version="2.10"> <doc xml:space="preserve">Gets the timestamp (seconds from systemâs Epoch) when the resource was added to the recently used resources list.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of seconds elapsed from systemâs Epoch when the resource was added to the list, or -1 on failure.</doc> <type name="glong" c:type="time_t"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_age" c:identifier="gtk_recent_info_get_age" version="2.10"> <doc xml:space="preserve">Gets the number of days elapsed since the last update of the resource pointed by @info.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a positive integer containing the number of days elapsed since the time this resource was last modified</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_application_info" c:identifier="gtk_recent_info_get_application_info" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%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</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> <parameter name="app_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the application that has registered this item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="app_exec" direction="out" caller-allocates="0" transfer-ownership="none"> <doc xml:space="preserve">return location for the string containing the command line</doc> <type name="utf8" c:type="const gchar**"/> </parameter> <parameter name="count" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the number of times this item was registered</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="time_" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the timestamp this item was last registered for this application</doc> <type name="glong" c:type="time_t*"/> </parameter> </parameters> </method> <method name="get_applications" c:identifier="gtk_recent_info_get_applications" version="2.10"> <doc xml:space="preserve">Retrieves the list of applications that have registered this resource.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve"> a newly allocated %NULL-terminated array of strings. Use g_strfreev() to free it.</doc> <array length="0" zero-terminated="1" c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the length of the returned list</doc> <type name="gsize" c:type="gsize*"/> </parameter> </parameters> </method> <method name="get_description" c:identifier="gtk_recent_info_get_description" version="2.10"> <doc xml:space="preserve">Gets the (short) description of the resource.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the description of the resource. The returned string is owned by the recent manager, and should not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_display_name" c:identifier="gtk_recent_info_get_display_name" version="2.10"> <doc xml:space="preserve">Gets the name of the resource. If none has been defined, the basename of the resource is obtained.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the display name of the resource. The returned string is owned by the recent manager, and should not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_gicon" c:identifier="gtk_recent_info_get_gicon" version="2.22"> <doc xml:space="preserve">Retrieves the icon associated to the resource MIME type.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GIcon containing the icon, or %NULL. Use g_object_unref() when finished using the icon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_groups" c:identifier="gtk_recent_info_get_groups" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve"> a newly allocated %NULL terminated array of strings. Use g_strfreev() to free it.</doc> <array length="0" zero-terminated="1" c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the number of groups returned</doc> <type name="gsize" c:type="gsize*"/> </parameter> </parameters> </method> <method name="get_icon" c:identifier="gtk_recent_info_get_icon" version="2.10"> <doc xml:space="preserve">Retrieves the icon of size @size associated to the resource MIME type.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GdkPixbuf containing the icon, or %NULL. Use g_object_unref() when finished using the icon.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the size of the icon in pixels</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_mime_type" c:identifier="gtk_recent_info_get_mime_type" version="2.10"> <doc xml:space="preserve">Gets the MIME type of the resource.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the MIME type of the resource. The returned string is owned by the recent manager, and should not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_modified" c:identifier="gtk_recent_info_get_modified" version="2.10"> <doc xml:space="preserve">Gets the timestamp (seconds from systemâs Epoch) when the meta-data for the resource was last modified.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of seconds elapsed from systemâs Epoch when the resource was last modified, or -1 on failure.</doc> <type name="glong" c:type="time_t"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_private_hint" c:identifier="gtk_recent_info_get_private_hint" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the private flag was found, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_short_name" c:identifier="gtk_recent_info_get_short_name" version="2.10"> <doc xml:space="preserve">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â.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly-allocated string in UTF-8 encoding free it with g_free()</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">an #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_uri" c:identifier="gtk_recent_info_get_uri" version="2.10"> <doc xml:space="preserve">Gets the URI of the resource.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the URI of the resource. The returned string is owned by the recent manager, and should not be freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_uri_display" c:identifier="gtk_recent_info_get_uri_display" version="2.10"> <doc xml:space="preserve">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 gtk_recent_info_get_uri().</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a newly allocated UTF-8 string containing the resourceâs URI or %NULL. Use g_free() when done using it.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="get_visited" c:identifier="gtk_recent_info_get_visited" version="2.10"> <doc xml:space="preserve">Gets the timestamp (seconds from systemâs Epoch) when the meta-data for the resource was last visited.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of seconds elapsed from systemâs Epoch when the resource was last visited, or -1 on failure.</doc> <type name="glong" c:type="time_t"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="has_application" c:identifier="gtk_recent_info_has_application" version="2.10"> <doc xml:space="preserve">Checks whether an application registered this resource using @app_name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an application with name @app_name was found, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> <parameter name="app_name" transfer-ownership="none"> <doc xml:space="preserve">a string containing an application name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="has_group" c:identifier="gtk_recent_info_has_group" version="2.10"> <doc xml:space="preserve">Checks whether @group_name appears inside the groups registered for the recently used item @info.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the group was found</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> <parameter name="group_name" transfer-ownership="none"> <doc xml:space="preserve">name of a group</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="is_local" c:identifier="gtk_recent_info_is_local" version="2.10"> <doc xml:space="preserve">Checks whether the resource is local or not by looking at the scheme of its URI.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the resource is local</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="last_application" c:identifier="gtk_recent_info_last_application" version="2.10"> <doc xml:space="preserve">Gets the name of the last application that have registered the recently used resource represented by @info.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">an application name. Use g_free() to free it.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="match" c:identifier="gtk_recent_info_match" version="2.10"> <doc xml:space="preserve">Checks whether two #GtkRecentInfo-struct point to the same resource.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if both #GtkRecentInfo-struct point to the same resource, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="info_a" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> <parameter name="info_b" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </parameter> </parameters> </method> <method name="ref" c:identifier="gtk_recent_info_ref" version="2.10"> <doc xml:space="preserve">Increases the reference count of @recent_info by one.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the recent info object with its reference count increased by one</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> <method name="unref" c:identifier="gtk_recent_info_unref" version="2.10"> <doc xml:space="preserve">Decreases the reference count of @info by one. If the reference count reaches zero, @info is deallocated, and the memory freed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentInfo</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </instance-parameter> </parameters> </method> </record> <class name="RecentManager" c:symbol-prefix="recent_manager" c:type="GtkRecentManager" version="2.10" parent="GObject.Object" glib:type-name="GtkRecentManager" glib:get-type="gtk_recent_manager_get_type" glib:type-struct="RecentManagerClass"> <doc xml:space="preserve">#GtkRecentManager provides a facility for adding, removing and looking up recently used files. Each recently used file is identified by its URI, and has meta-data associated to it, like the names and command lines of the applications that have registered it, the number of time each application has registered the same file, the mime type of the file and whether the file should be displayed only by the applications that have registered it. The recently used files list is per user. The #GtkRecentManager acts like a database of all the recently used files. You can create new #GtkRecentManager objects, but it is more efficient to use the default manager created by GTK+. Adding a new recently used file is as simple as: |[<!-- language="C" --> GtkRecentManager *manager; manager = gtk_recent_manager_get_default (); gtk_recent_manager_add_item (manager, file_uri); ]| The #GtkRecentManager will try to gather all the needed information from the file itself through GIO. Looking up the meta-data associated with a recently used file given its URI requires calling gtk_recent_manager_lookup_item(): |[<!-- language="C" --> GtkRecentManager *manager; GtkRecentInfo *info; GError *error = NULL; manager = gtk_recent_manager_get_default (); info = gtk_recent_manager_lookup_item (manager, file_uri, &error); if (error) { g_warning ("Could not find the file: %s", error->message); g_error_free (error); } else { // Use the info object gtk_recent_info_unref (info); } ]| In order to retrieve the list of recently used files, you can use gtk_recent_manager_get_items(), which returns a list of #GtkRecentInfo-structs. A #GtkRecentManager is the model used to populate the contents of one, or more #GtkRecentChooser implementations. Note that the maximum age of the recently used files list is controllable through the #GtkSettings:gtk-recent-files-max-age property. Recently used files are supported since GTK+ 2.10.</doc> <constructor name="new" c:identifier="gtk_recent_manager_new" version="2.10"> <doc xml:space="preserve">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 âchangedâ signal each time something inside the list changes. #GtkRecentManager objects are expensive: be sure to create them only when needed. You should use gtk_recent_manager_get_default() instead.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkRecentManager object</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </return-value> </constructor> <function name="get_default" c:identifier="gtk_recent_manager_get_default" version="2.10"> <doc xml:space="preserve">Gets a unique instance of #GtkRecentManager, that you can share in your application without caring about memory management.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A unique #GtkRecentManager. Do not ref or unref it.</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </return-value> </function> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> </parameters> </virtual-method> <method name="add_full" c:identifier="gtk_recent_manager_add_full" version="2.10"> <doc xml:space="preserve">Adds a new resource, pointed by @uri, into the recently used resources list, using the metadata specified inside the #GtkRecentData-struct 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-struct, 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-struct 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the new item was successfully added to the recently used resources list, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a valid URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="recent_data" transfer-ownership="none"> <doc xml:space="preserve">metadata of the resource</doc> <type name="RecentData" c:type="const GtkRecentData*"/> </parameter> </parameters> </method> <method name="add_item" c:identifier="gtk_recent_manager_add_item" version="2.10"> <doc xml:space="preserve">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 gtk_recent_manager_add_full(). See gtk_recent_manager_add_full() if you want to explicitly define the metadata for the resource pointed by @uri.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the new item was successfully added to the recently used resources list</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a valid URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_items" c:identifier="gtk_recent_manager_get_items" version="2.10"> <doc xml:space="preserve">Gets the list of recently used resources.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a list of newly allocated #GtkRecentInfo objects. Use gtk_recent_info_unref() on each item inside the list, and then free the list itself using g_list_free().</doc> <type name="GLib.List" c:type="GList*"> <type name="RecentInfo"/> </type> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> </parameters> </method> <method name="has_item" c:identifier="gtk_recent_manager_has_item" version="2.10"> <doc xml:space="preserve">Checks whether there is a recently used resource registered with @uri inside the recent manager.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the resource was found, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="lookup_item" c:identifier="gtk_recent_manager_lookup_item" version="2.10" throws="1"> <doc xml:space="preserve">Searches for a URI inside the recently used resources list, and returns a #GtkRecentInfo-struct containing informations about the resource like its MIME type, or its display name.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkRecentInfo-struct containing information about the resource pointed by @uri, or %NULL if the URI was not registered in the recently used resources list. Free with gtk_recent_info_unref().</doc> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">a URI</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="move_item" c:identifier="gtk_recent_manager_move_item" version="2.10" throws="1"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the URI of a recently used resource</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_uri" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the new URI of the recently used resource, or %NULL to remove the item pointed by @uri in the list</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="purge_items" c:identifier="gtk_recent_manager_purge_items" version="2.10" throws="1"> <doc xml:space="preserve">Purges every item from the recently used resources list.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of items that have been removed from the recently used resources list</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> </parameters> </method> <method name="remove_item" c:identifier="gtk_recent_manager_remove_item" version="2.10" throws="1"> <doc xml:space="preserve">Removes a resource pointed by @uri from the recently used resources list handled by a recent manager.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the item pointed by @uri has been successfully removed by the recently used resources list, and %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRecentManager</doc> <type name="RecentManager" c:type="GtkRecentManager*"/> </instance-parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the URI of the item you wish to remove</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="filename" version="2.10" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The full path to the file to be used to store and read the recently used resources list</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="size" version="2.10" transfer-ownership="none"> <doc xml:space="preserve">The size of the recently used resources list.</doc> <type name="gint" c:type="gint"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="RecentManagerPrivate" c:type="GtkRecentManagerPrivate*"/> </field> <glib:signal name="changed" when="first" version="2.10"> <doc xml:space="preserve">Emitted when the current recently used resources manager changes its contents, either by calling gtk_recent_manager_add_item() or by another application.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="RecentManagerClass" c:type="GtkRecentManagerClass" glib:is-gtype-struct-for="RecentManager" version="2.10"> <doc xml:space="preserve">#GtkRecentManagerClass contains only private data.</doc> <field name="parent_class" readable="0" private="1"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <type name="RecentManager" c:type="GtkRecentManager*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_recent1" introspectable="0"> <callback name="_gtk_recent1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_recent2" introspectable="0"> <callback name="_gtk_recent2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_recent3" introspectable="0"> <callback name="_gtk_recent3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_recent4" introspectable="0"> <callback name="_gtk_recent4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="RecentManagerError" version="2.10" glib:type-name="GtkRecentManagerError" glib:get-type="gtk_recent_manager_error_get_type" c:type="GtkRecentManagerError" glib:error-domain="gtk-recent-manager-error-quark"> <doc xml:space="preserve">Error codes for #GtkRecentManager operations</doc> <member name="not_found" value="0" c:identifier="GTK_RECENT_MANAGER_ERROR_NOT_FOUND" glib:nick="not-found"> <doc xml:space="preserve">the URI specified does not exists in the recently used resources list.</doc> </member> <member name="invalid_uri" value="1" c:identifier="GTK_RECENT_MANAGER_ERROR_INVALID_URI" glib:nick="invalid-uri"> <doc xml:space="preserve">the URI specified is not valid.</doc> </member> <member name="invalid_encoding" value="2" c:identifier="GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING" glib:nick="invalid-encoding"> <doc xml:space="preserve">the supplied string is not UTF-8 encoded.</doc> </member> <member name="not_registered" value="3" c:identifier="GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED" glib:nick="not-registered"> <doc xml:space="preserve">no application has registered the specified item.</doc> </member> <member name="read" value="4" c:identifier="GTK_RECENT_MANAGER_ERROR_READ" glib:nick="read"> <doc xml:space="preserve">failure while reading the recently used resources file.</doc> </member> <member name="write" value="5" c:identifier="GTK_RECENT_MANAGER_ERROR_WRITE" glib:nick="write"> <doc xml:space="preserve">failure while writing the recently used resources file.</doc> </member> <member name="unknown" value="6" c:identifier="GTK_RECENT_MANAGER_ERROR_UNKNOWN" glib:nick="unknown"> <doc xml:space="preserve">unspecified error.</doc> </member> <function name="quark" c:identifier="gtk_recent_manager_error_quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> </enumeration> <record name="RecentManagerPrivate" c:type="GtkRecentManagerPrivate" disguised="1"> </record> <callback name="RecentSortFunc" c:type="GtkRecentSortFunc"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="a" transfer-ownership="none"> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </parameter> <parameter name="b" transfer-ownership="none"> <type name="RecentInfo" c:type="GtkRecentInfo*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <enumeration name="RecentSortType" version="2.10" glib:type-name="GtkRecentSortType" glib:get-type="gtk_recent_sort_type_get_type" c:type="GtkRecentSortType"> <doc xml:space="preserve">Used to specify the sorting method to be applyed to the recently used resource list.</doc> <member name="none" value="0" c:identifier="GTK_RECENT_SORT_NONE" glib:nick="none"> <doc xml:space="preserve">Do not sort the returned list of recently used resources.</doc> </member> <member name="mru" value="1" c:identifier="GTK_RECENT_SORT_MRU" glib:nick="mru"> <doc xml:space="preserve">Sort the returned list with the most recently used items first.</doc> </member> <member name="lru" value="2" c:identifier="GTK_RECENT_SORT_LRU" glib:nick="lru"> <doc xml:space="preserve">Sort the returned list with the least recently used items first.</doc> </member> <member name="custom" value="3" c:identifier="GTK_RECENT_SORT_CUSTOM" glib:nick="custom"> <doc xml:space="preserve">Sort the returned list using a custom sorting function passed using gtk_recent_chooser_set_sort_func().</doc> </member> </enumeration> <bitfield name="RegionFlags" glib:type-name="GtkRegionFlags" glib:get-type="gtk_region_flags_get_type" c:type="GtkRegionFlags"> <doc xml:space="preserve">Describes a region within a widget.</doc> <member name="even" value="1" c:identifier="GTK_REGION_EVEN" glib:nick="even"> <doc xml:space="preserve">Region has an even number within a set.</doc> </member> <member name="odd" value="2" c:identifier="GTK_REGION_ODD" glib:nick="odd"> <doc xml:space="preserve">Region has an odd number within a set.</doc> </member> <member name="first" value="4" c:identifier="GTK_REGION_FIRST" glib:nick="first"> <doc xml:space="preserve">Region is the first one within a set.</doc> </member> <member name="last" value="8" c:identifier="GTK_REGION_LAST" glib:nick="last"> <doc xml:space="preserve">Region is the last one within a set.</doc> </member> <member name="only" value="16" c:identifier="GTK_REGION_ONLY" glib:nick="only"> <doc xml:space="preserve">Region is the only one within a set.</doc> </member> <member name="sorted" value="32" c:identifier="GTK_REGION_SORTED" glib:nick="sorted"> <doc xml:space="preserve">Region is part of a sorted area.</doc> </member> </bitfield> <enumeration name="ReliefStyle" glib:type-name="GtkReliefStyle" glib:get-type="gtk_relief_style_get_type" c:type="GtkReliefStyle"> <doc xml:space="preserve">Indicated the relief to be drawn around a #GtkButton.</doc> <member name="normal" value="0" c:identifier="GTK_RELIEF_NORMAL" glib:nick="normal"> <doc xml:space="preserve">Draw a normal relief.</doc> </member> <member name="half" value="1" c:identifier="GTK_RELIEF_HALF" glib:nick="half"> <doc xml:space="preserve">A half relief. Deprecated in 3.14, does the same as @GTK_RELIEF_NORMAL</doc> </member> <member name="none" value="2" c:identifier="GTK_RELIEF_NONE" glib:nick="none"> <doc xml:space="preserve">No relief.</doc> </member> </enumeration> <class name="RendererCellAccessible" c:symbol-prefix="renderer_cell_accessible" c:type="GtkRendererCellAccessible" parent="CellAccessible" glib:type-name="GtkRendererCellAccessible" glib:get-type="gtk_renderer_cell_accessible_get_type" glib:type-struct="RendererCellAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <constructor name="new" c:identifier="gtk_renderer_cell_accessible_new"> <return-value transfer-ownership="full"> <type name="Atk.Object" c:type="AtkObject*"/> </return-value> <parameters> <parameter name="renderer" transfer-ownership="none"> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </constructor> <property name="renderer" writable="1" construct-only="1" transfer-ownership="none"> <type name="CellRenderer"/> </property> <field name="parent"> <type name="CellAccessible" c:type="GtkCellAccessible"/> </field> <field name="priv"> <type name="RendererCellAccessiblePrivate" c:type="GtkRendererCellAccessiblePrivate*"/> </field> </class> <record name="RendererCellAccessibleClass" c:type="GtkRendererCellAccessibleClass" glib:is-gtype-struct-for="RendererCellAccessible"> <field name="parent_class"> <type name="CellAccessibleClass" c:type="GtkCellAccessibleClass"/> </field> </record> <record name="RendererCellAccessiblePrivate" c:type="GtkRendererCellAccessiblePrivate" disguised="1"> </record> <record name="RequestedSize" c:type="GtkRequestedSize"> <doc xml:space="preserve">Represents a request of a screen object in a given orientation. These are primarily used in container implementations when allocating a natural size for children calling. See gtk_distribute_natural_allocation().</doc> <field name="data" writable="1"> <doc xml:space="preserve">A client pointer</doc> <type name="gpointer" c:type="gpointer"/> </field> <field name="minimum_size" writable="1"> <doc xml:space="preserve">The minimum size needed for allocation in a given orientation</doc> <type name="gint" c:type="gint"/> </field> <field name="natural_size" writable="1"> <doc xml:space="preserve">The natural size for allocation in a given orientation</doc> <type name="gint" c:type="gint"/> </field> </record> <record name="Requisition" c:type="GtkRequisition" glib:type-name="GtkRequisition" glib:get-type="gtk_requisition_get_type" c:symbol-prefix="requisition"> <doc xml:space="preserve">A #GtkRequisition-struct represents the desired size of a widget. See [GtkWidgetâs geometry management section][geometry-management] for more information.</doc> <field name="width" writable="1"> <doc xml:space="preserve">the widgetâs desired width</doc> <type name="gint" c:type="gint"/> </field> <field name="height" writable="1"> <doc xml:space="preserve">the widgetâs desired height</doc> <type name="gint" c:type="gint"/> </field> <constructor name="new" c:identifier="gtk_requisition_new" version="3.0"> <doc xml:space="preserve">Allocates a new #GtkRequisition-struct and initializes its elements to zero.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new empty #GtkRequisition. The newly allocated #GtkRequisition should be freed with gtk_requisition_free().</doc> <type name="Requisition" c:type="GtkRequisition*"/> </return-value> </constructor> <method name="copy" c:identifier="gtk_requisition_copy"> <doc xml:space="preserve">Copies a #GtkRequisition.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of @requisition</doc> <type name="Requisition" c:type="GtkRequisition*"/> </return-value> <parameters> <instance-parameter name="requisition" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRequisition</doc> <type name="Requisition" c:type="const GtkRequisition*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_requisition_free"> <doc xml:space="preserve">Frees a #GtkRequisition.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="requisition" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRequisition</doc> <type name="Requisition" c:type="GtkRequisition*"/> </instance-parameter> </parameters> </method> </record> <enumeration name="ResizeMode" glib:type-name="GtkResizeMode" glib:get-type="gtk_resize_mode_get_type" c:type="GtkResizeMode"> <member name="parent" value="0" c:identifier="GTK_RESIZE_PARENT" glib:nick="parent"> <doc xml:space="preserve">Pass resize request to the parent</doc> </member> <member name="queue" value="1" c:identifier="GTK_RESIZE_QUEUE" glib:nick="queue"> <doc xml:space="preserve">Queue resizes on this widget</doc> </member> <member name="immediate" value="2" c:identifier="GTK_RESIZE_IMMEDIATE" glib:nick="immediate"> <doc xml:space="preserve">Resize immediately. Deprecated.</doc> </member> </enumeration> <enumeration name="ResponseType" glib:type-name="GtkResponseType" glib:get-type="gtk_response_type_get_type" c:type="GtkResponseType"> <doc xml:space="preserve">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.</doc> <member name="none" value="-1" c:identifier="GTK_RESPONSE_NONE" glib:nick="none"> <doc xml:space="preserve">Returned if an action widget has no response id, or if the dialog gets programmatically hidden or destroyed</doc> </member> <member name="reject" value="-2" c:identifier="GTK_RESPONSE_REJECT" glib:nick="reject"> <doc xml:space="preserve">Generic response id, not used by GTK+ dialogs</doc> </member> <member name="accept" value="-3" c:identifier="GTK_RESPONSE_ACCEPT" glib:nick="accept"> <doc xml:space="preserve">Generic response id, not used by GTK+ dialogs</doc> </member> <member name="delete_event" value="-4" c:identifier="GTK_RESPONSE_DELETE_EVENT" glib:nick="delete-event"> <doc xml:space="preserve">Returned if the dialog is deleted</doc> </member> <member name="ok" value="-5" c:identifier="GTK_RESPONSE_OK" glib:nick="ok"> <doc xml:space="preserve">Returned by OK buttons in GTK+ dialogs</doc> </member> <member name="cancel" value="-6" c:identifier="GTK_RESPONSE_CANCEL" glib:nick="cancel"> <doc xml:space="preserve">Returned by Cancel buttons in GTK+ dialogs</doc> </member> <member name="close" value="-7" c:identifier="GTK_RESPONSE_CLOSE" glib:nick="close"> <doc xml:space="preserve">Returned by Close buttons in GTK+ dialogs</doc> </member> <member name="yes" value="-8" c:identifier="GTK_RESPONSE_YES" glib:nick="yes"> <doc xml:space="preserve">Returned by Yes buttons in GTK+ dialogs</doc> </member> <member name="no" value="-9" c:identifier="GTK_RESPONSE_NO" glib:nick="no"> <doc xml:space="preserve">Returned by No buttons in GTK+ dialogs</doc> </member> <member name="apply" value="-10" c:identifier="GTK_RESPONSE_APPLY" glib:nick="apply"> <doc xml:space="preserve">Returned by Apply buttons in GTK+ dialogs</doc> </member> <member name="help" value="-11" c:identifier="GTK_RESPONSE_HELP" glib:nick="help"> <doc xml:space="preserve">Returned by Help buttons in GTK+ dialogs</doc> </member> </enumeration> <class name="Revealer" c:symbol-prefix="revealer" c:type="GtkRevealer" parent="Bin" glib:type-name="GtkRevealer" glib:get-type="gtk_revealer_get_type" glib:type-struct="RevealerClass"> <doc xml:space="preserve">The GtkRevealer widget is a container which animates the transition of its child from invisible to visible. The style of transition can be controlled with gtk_revealer_set_transition_type(). These animations respect the #GtkSettings:gtk-enable-animations setting. # CSS nodes GtkRevealer has a single CSS node with name revealer. The GtkRevealer widget was added in GTK+ 3.10.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_revealer_new" version="3.10"> <doc xml:space="preserve">Creates a new #GtkRevealer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkRevealer</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_child_revealed" c:identifier="gtk_revealer_get_child_revealed" version="3.10"> <doc xml:space="preserve">Returns whether the child is fully revealed, in other words whether the transition to the revealed state is completed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the child is fully revealed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="revealer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRevealer</doc> <type name="Revealer" c:type="GtkRevealer*"/> </instance-parameter> </parameters> </method> <method name="get_reveal_child" c:identifier="gtk_revealer_get_reveal_child" version="3.10"> <doc xml:space="preserve">Returns whether the child is currently revealed. See gtk_revealer_set_reveal_child(). 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 gtk_revealer_get_child_revealed().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the child is revealed.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="revealer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRevealer</doc> <type name="Revealer" c:type="GtkRevealer*"/> </instance-parameter> </parameters> </method> <method name="get_transition_duration" c:identifier="gtk_revealer_get_transition_duration" version="3.10"> <doc xml:space="preserve">Returns the amount of time (in milliseconds) that transitions will take.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the transition duration</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="revealer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRevealer</doc> <type name="Revealer" c:type="GtkRevealer*"/> </instance-parameter> </parameters> </method> <method name="get_transition_type" c:identifier="gtk_revealer_get_transition_type" version="3.10"> <doc xml:space="preserve">Gets the type of animation that will be used for transitions in @revealer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current transition type of @revealer</doc> <type name="RevealerTransitionType" c:type="GtkRevealerTransitionType"/> </return-value> <parameters> <instance-parameter name="revealer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRevealer</doc> <type name="Revealer" c:type="GtkRevealer*"/> </instance-parameter> </parameters> </method> <method name="set_reveal_child" c:identifier="gtk_revealer_set_reveal_child" version="3.10"> <doc xml:space="preserve">Tells the #GtkRevealer to reveal or conceal its child. The transition will be animated with the current transition type of @revealer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="revealer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRevealer</doc> <type name="Revealer" c:type="GtkRevealer*"/> </instance-parameter> <parameter name="reveal_child" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to reveal the child</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_transition_duration" c:identifier="gtk_revealer_set_transition_duration" version="3.10"> <doc xml:space="preserve">Sets the duration that transitions will take.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="revealer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRevealer</doc> <type name="Revealer" c:type="GtkRevealer*"/> </instance-parameter> <parameter name="duration" transfer-ownership="none"> <doc xml:space="preserve">the new duration, in milliseconds</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_transition_type" c:identifier="gtk_revealer_set_transition_type" version="3.10"> <doc xml:space="preserve">Sets the type of animation that will be used for transitions in @revealer. Available types include various kinds of fades and slides.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="revealer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRevealer</doc> <type name="Revealer" c:type="GtkRevealer*"/> </instance-parameter> <parameter name="transition" transfer-ownership="none"> <doc xml:space="preserve">the new transition type</doc> <type name="RevealerTransitionType" c:type="GtkRevealerTransitionType"/> </parameter> </parameters> </method> <property name="child-revealed" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="reveal-child" writable="1" construct="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="transition-duration" writable="1" construct="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="transition-type" writable="1" construct="1" transfer-ownership="none"> <type name="RevealerTransitionType"/> </property> <field name="parent_instance"> <type name="Bin" c:type="GtkBin"/> </field> </class> <record name="RevealerClass" c:type="GtkRevealerClass" glib:is-gtype-struct-for="Revealer"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> </record> <enumeration name="RevealerTransitionType" glib:type-name="GtkRevealerTransitionType" glib:get-type="gtk_revealer_transition_type_get_type" c:type="GtkRevealerTransitionType"> <doc xml:space="preserve">These enumeration values describe the possible transitions when the child of a #GtkRevealer widget is shown or hidden.</doc> <member name="none" value="0" c:identifier="GTK_REVEALER_TRANSITION_TYPE_NONE" glib:nick="none"> <doc xml:space="preserve">No transition</doc> </member> <member name="crossfade" value="1" c:identifier="GTK_REVEALER_TRANSITION_TYPE_CROSSFADE" glib:nick="crossfade"> <doc xml:space="preserve">Fade in</doc> </member> <member name="slide_right" value="2" c:identifier="GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT" glib:nick="slide-right"> <doc xml:space="preserve">Slide in from the left</doc> </member> <member name="slide_left" value="3" c:identifier="GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT" glib:nick="slide-left"> <doc xml:space="preserve">Slide in from the right</doc> </member> <member name="slide_up" value="4" c:identifier="GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP" glib:nick="slide-up"> <doc xml:space="preserve">Slide in from the bottom</doc> </member> <member name="slide_down" value="5" c:identifier="GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN" glib:nick="slide-down"> <doc xml:space="preserve">Slide in from the top</doc> </member> </enumeration> <constant name="STOCK_ABOUT" value="gtk-about" c:type="GTK_STOCK_ABOUT" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âAboutâ item. </doc> <doc-deprecated xml:space="preserve">Use named icon &quot;help-about&quot; or the label &quot;_About&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ADD" value="gtk-add" c:type="GTK_STOCK_ADD" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âAddâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;list-add&quot; or the label &quot;_Add&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_APPLY" value="gtk-apply" c:type="GTK_STOCK_APPLY" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âApplyâ item and icon.</doc> <doc-deprecated xml:space="preserve">Do not use an icon. Use label &quot;_Apply&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_BOLD" value="gtk-bold" c:type="GTK_STOCK_BOLD" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âBoldâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-text-bold&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_CANCEL" value="gtk-cancel" c:type="GTK_STOCK_CANCEL" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âCancelâ item and icon.</doc> <doc-deprecated xml:space="preserve">Do not use an icon. Use label &quot;_Cancel&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_CAPS_LOCK_WARNING" value="gtk-caps-lock-warning" c:type="GTK_STOCK_CAPS_LOCK_WARNING" version="2.16" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âCaps Lock Warningâ icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;dialog-warning-symbolic&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_CDROM" value="gtk-cdrom" c:type="GTK_STOCK_CDROM" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âCD-Româ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-optical&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_CLEAR" value="gtk-clear" c:type="GTK_STOCK_CLEAR" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âClearâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;edit-clear&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_CLOSE" value="gtk-close" c:type="GTK_STOCK_CLOSE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âCloseâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;window-close&quot; or the label &quot;_Close&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_COLOR_PICKER" value="gtk-color-picker" c:type="GTK_STOCK_COLOR_PICKER" version="2.2" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âColor Pickerâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_CONNECT" value="gtk-connect" c:type="GTK_STOCK_CONNECT" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âConnectâ icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_CONVERT" value="gtk-convert" c:type="GTK_STOCK_CONVERT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âConvertâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_COPY" value="gtk-copy" c:type="GTK_STOCK_COPY" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âCopyâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use the named icon &quot;edit-copy&quot; or the label &quot;_Copy&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_CUT" value="gtk-cut" c:type="GTK_STOCK_CUT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âCutâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use the named icon &quot;edit-cut&quot; or the label &quot;Cu_t&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DELETE" value="gtk-delete" c:type="GTK_STOCK_DELETE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âDeleteâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use the named icon &quot;edit-delete&quot; or the label &quot;_Delete&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DIALOG_AUTHENTICATION" value="gtk-dialog-authentication" c:type="GTK_STOCK_DIALOG_AUTHENTICATION" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âAuthenticationâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;dialog-password&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DIALOG_ERROR" value="gtk-dialog-error" c:type="GTK_STOCK_DIALOG_ERROR" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âErrorâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;dialog-error&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DIALOG_INFO" value="gtk-dialog-info" c:type="GTK_STOCK_DIALOG_INFO" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âInformationâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;dialog-information&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DIALOG_QUESTION" value="gtk-dialog-question" c:type="GTK_STOCK_DIALOG_QUESTION" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âQuestionâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;dialog-question&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DIALOG_WARNING" value="gtk-dialog-warning" c:type="GTK_STOCK_DIALOG_WARNING" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âWarningâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;dialog-warning&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DIRECTORY" value="gtk-directory" c:type="GTK_STOCK_DIRECTORY" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âDirectoryâ icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;folder&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DISCARD" value="gtk-discard" c:type="GTK_STOCK_DISCARD" version="2.12" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âDiscardâ item.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DISCONNECT" value="gtk-disconnect" c:type="GTK_STOCK_DISCONNECT" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âDisconnectâ icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DND" value="gtk-dnd" c:type="GTK_STOCK_DND" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âDrag-And-Dropâ icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_DND_MULTIPLE" value="gtk-dnd-multiple" c:type="GTK_STOCK_DND_MULTIPLE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âDrag-And-Drop multipleâ icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_EDIT" value="gtk-edit" c:type="GTK_STOCK_EDIT" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âEditâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_EXECUTE" value="gtk-execute" c:type="GTK_STOCK_EXECUTE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âExecuteâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;system-run&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_FILE" value="gtk-file" c:type="GTK_STOCK_FILE" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âFileâ item and icon. Since 3.0, this item has a label, before it only had an icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;text-x-generic&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_FIND" value="gtk-find" c:type="GTK_STOCK_FIND" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âFindâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;edit-find&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_FIND_AND_REPLACE" value="gtk-find-and-replace" c:type="GTK_STOCK_FIND_AND_REPLACE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âFind and Replaceâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;edit-find-replace&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_FLOPPY" value="gtk-floppy" c:type="GTK_STOCK_FLOPPY" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âFloppyâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_FULLSCREEN" value="gtk-fullscreen" c:type="GTK_STOCK_FULLSCREEN" version="2.8" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âFullscreenâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;view-fullscreen&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_GOTO_BOTTOM" value="gtk-goto-bottom" c:type="GTK_STOCK_GOTO_BOTTOM" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âBottomâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-bottom&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_GOTO_FIRST" value="gtk-goto-first" c:type="GTK_STOCK_GOTO_FIRST" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âFirstâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-first&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_GOTO_LAST" value="gtk-goto-last" c:type="GTK_STOCK_GOTO_LAST" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âLastâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-last&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_GOTO_TOP" value="gtk-goto-top" c:type="GTK_STOCK_GOTO_TOP" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âTopâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-top&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_GO_BACK" value="gtk-go-back" c:type="GTK_STOCK_GO_BACK" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âBackâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-previous&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_GO_DOWN" value="gtk-go-down" c:type="GTK_STOCK_GO_DOWN" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âDownâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-down&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_GO_FORWARD" value="gtk-go-forward" c:type="GTK_STOCK_GO_FORWARD" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âForwardâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-next&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_GO_UP" value="gtk-go-up" c:type="GTK_STOCK_GO_UP" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âUpâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-up&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_HARDDISK" value="gtk-harddisk" c:type="GTK_STOCK_HARDDISK" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âHarddiskâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;drive-harddisk&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_HELP" value="gtk-help" c:type="GTK_STOCK_HELP" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âHelpâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;help-browser&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_HOME" value="gtk-home" c:type="GTK_STOCK_HOME" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âHomeâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-home&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_INDENT" value="gtk-indent" c:type="GTK_STOCK_INDENT" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âIndentâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-indent-more&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_INDEX" value="gtk-index" c:type="GTK_STOCK_INDEX" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âIndexâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_INFO" value="gtk-info" c:type="GTK_STOCK_INFO" version="2.8" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âInfoâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;dialog-information&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ITALIC" value="gtk-italic" c:type="GTK_STOCK_ITALIC" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âItalicâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-text-italic&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_JUMP_TO" value="gtk-jump-to" c:type="GTK_STOCK_JUMP_TO" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âJump toâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;go-jump&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_JUSTIFY_CENTER" value="gtk-justify-center" c:type="GTK_STOCK_JUSTIFY_CENTER" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âCenterâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-justify-center&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_JUSTIFY_FILL" value="gtk-justify-fill" c:type="GTK_STOCK_JUSTIFY_FILL" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âFillâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-justify-fill&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_JUSTIFY_LEFT" value="gtk-justify-left" c:type="GTK_STOCK_JUSTIFY_LEFT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âLeftâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-justify-left&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_JUSTIFY_RIGHT" value="gtk-justify-right" c:type="GTK_STOCK_JUSTIFY_RIGHT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âRightâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-justify-right&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_LEAVE_FULLSCREEN" value="gtk-leave-fullscreen" c:type="GTK_STOCK_LEAVE_FULLSCREEN" version="2.8" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âLeave Fullscreenâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;view-restore&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MEDIA_FORWARD" value="gtk-media-forward" c:type="GTK_STOCK_MEDIA_FORWARD" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMedia Forwardâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-seek-forward&quot; or the label &quot;_Forward&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MEDIA_NEXT" value="gtk-media-next" c:type="GTK_STOCK_MEDIA_NEXT" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMedia Nextâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-skip-forward&quot; or the label &quot;_Next&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MEDIA_PAUSE" value="gtk-media-pause" c:type="GTK_STOCK_MEDIA_PAUSE" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMedia Pauseâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-playback-pause&quot; or the label &quot;P_ause&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MEDIA_PLAY" value="gtk-media-play" c:type="GTK_STOCK_MEDIA_PLAY" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMedia Playâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-playback-start&quot; or the label &quot;_Play&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MEDIA_PREVIOUS" value="gtk-media-previous" c:type="GTK_STOCK_MEDIA_PREVIOUS" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMedia Previousâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-skip-backward&quot; or the label &quot;Pre_vious&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MEDIA_RECORD" value="gtk-media-record" c:type="GTK_STOCK_MEDIA_RECORD" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMedia Recordâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-record&quot; or the label &quot;_Record&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MEDIA_REWIND" value="gtk-media-rewind" c:type="GTK_STOCK_MEDIA_REWIND" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMedia Rewindâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-seek-backward&quot; or the label &quot;R_ewind&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MEDIA_STOP" value="gtk-media-stop" c:type="GTK_STOCK_MEDIA_STOP" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMedia Stopâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;media-playback-stop&quot; or the label &quot;_Stop&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_MISSING_IMAGE" value="gtk-missing-image" c:type="GTK_STOCK_MISSING_IMAGE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âMissing imageâ icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;image-missing&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_NETWORK" value="gtk-network" c:type="GTK_STOCK_NETWORK" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âNetworkâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;network-workgroup&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_NEW" value="gtk-new" c:type="GTK_STOCK_NEW" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âNewâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;document-new&quot; or the label &quot;_New&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_NO" value="gtk-no" c:type="GTK_STOCK_NO" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âNoâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_OK" value="gtk-ok" c:type="GTK_STOCK_OK" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âOKâ item and icon.</doc> <doc-deprecated xml:space="preserve">Do not use an icon. Use label &quot;_OK&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_OPEN" value="gtk-open" c:type="GTK_STOCK_OPEN" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âOpenâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;document-open&quot; or the label &quot;_Open&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ORIENTATION_LANDSCAPE" value="gtk-orientation-landscape" c:type="GTK_STOCK_ORIENTATION_LANDSCAPE" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âLandscape Orientationâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ORIENTATION_PORTRAIT" value="gtk-orientation-portrait" c:type="GTK_STOCK_ORIENTATION_PORTRAIT" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPortrait Orientationâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ORIENTATION_REVERSE_LANDSCAPE" value="gtk-orientation-reverse-landscape" c:type="GTK_STOCK_ORIENTATION_REVERSE_LANDSCAPE" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âReverse Landscape Orientationâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ORIENTATION_REVERSE_PORTRAIT" value="gtk-orientation-reverse-portrait" c:type="GTK_STOCK_ORIENTATION_REVERSE_PORTRAIT" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âReverse Portrait Orientationâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PAGE_SETUP" value="gtk-page-setup" c:type="GTK_STOCK_PAGE_SETUP" version="2.14" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPage Setupâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;document-page-setup&quot; or the label &quot;Page Set_up&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PASTE" value="gtk-paste" c:type="GTK_STOCK_PASTE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPasteâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;edit-paste&quot; or the label &quot;_Paste&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PREFERENCES" value="gtk-preferences" c:type="GTK_STOCK_PREFERENCES" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPreferencesâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;preferences-system&quot; or the label &quot;_Preferences&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PRINT" value="gtk-print" c:type="GTK_STOCK_PRINT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPrintâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;document-print&quot; or the label &quot;_Print&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PRINT_ERROR" value="gtk-print-error" c:type="GTK_STOCK_PRINT_ERROR" version="2.14" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPrint Errorâ icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;printer-error&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PRINT_PAUSED" value="gtk-print-paused" c:type="GTK_STOCK_PRINT_PAUSED" version="2.14" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPrint Pausedâ icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PRINT_PREVIEW" value="gtk-print-preview" c:type="GTK_STOCK_PRINT_PREVIEW" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPrint Previewâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use label &quot;Pre_view&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PRINT_REPORT" value="gtk-print-report" c:type="GTK_STOCK_PRINT_REPORT" version="2.14" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPrint Reportâ icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PRINT_WARNING" value="gtk-print-warning" c:type="GTK_STOCK_PRINT_WARNING" version="2.14" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPrint Warningâ icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_PROPERTIES" value="gtk-properties" c:type="GTK_STOCK_PROPERTIES" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âPropertiesâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;document-properties&quot; or the label &quot;_Properties&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_QUIT" value="gtk-quit" c:type="GTK_STOCK_QUIT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âQuitâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;application-exit&quot; or the label &quot;_Quit&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_REDO" value="gtk-redo" c:type="GTK_STOCK_REDO" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âRedoâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;edit-redo&quot; or the label &quot;_Redo&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_REFRESH" value="gtk-refresh" c:type="GTK_STOCK_REFRESH" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âRefreshâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;view-refresh&quot; or the label &quot;_Refresh&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_REMOVE" value="gtk-remove" c:type="GTK_STOCK_REMOVE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âRemoveâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;list-remove&quot; or the label &quot;_Remove&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_REVERT_TO_SAVED" value="gtk-revert-to-saved" c:type="GTK_STOCK_REVERT_TO_SAVED" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âRevertâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;document-revert&quot; or the label &quot;_Revert&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_SAVE" value="gtk-save" c:type="GTK_STOCK_SAVE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âSaveâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;document-save&quot; or the label &quot;_Save&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_SAVE_AS" value="gtk-save-as" c:type="GTK_STOCK_SAVE_AS" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âSave Asâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;document-save-as&quot; or the label &quot;Save _As&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_SELECT_ALL" value="gtk-select-all" c:type="GTK_STOCK_SELECT_ALL" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âSelect Allâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;edit-select-all&quot; or the label &quot;Select _All&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_SELECT_COLOR" value="gtk-select-color" c:type="GTK_STOCK_SELECT_COLOR" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âColorâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_SELECT_FONT" value="gtk-select-font" c:type="GTK_STOCK_SELECT_FONT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âFontâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_SORT_ASCENDING" value="gtk-sort-ascending" c:type="GTK_STOCK_SORT_ASCENDING" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âAscendingâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;view-sort-ascending&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_SORT_DESCENDING" value="gtk-sort-descending" c:type="GTK_STOCK_SORT_DESCENDING" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âDescendingâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;view-sort-descending&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_SPELL_CHECK" value="gtk-spell-check" c:type="GTK_STOCK_SPELL_CHECK" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âSpell Checkâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;tools-check-spelling&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_STOP" value="gtk-stop" c:type="GTK_STOCK_STOP" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âStopâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;process-stop&quot; or the label &quot;_Stop&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_STRIKETHROUGH" value="gtk-strikethrough" c:type="GTK_STOCK_STRIKETHROUGH" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âStrikethroughâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-text-strikethrough&quot; or the label &quot;_Strikethrough&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_UNDELETE" value="gtk-undelete" c:type="GTK_STOCK_UNDELETE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âUndeleteâ item and icon. The icon has an RTL variant.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_UNDERLINE" value="gtk-underline" c:type="GTK_STOCK_UNDERLINE" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âUnderlineâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-text-underline&quot; or the label &quot;_Underline&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_UNDO" value="gtk-undo" c:type="GTK_STOCK_UNDO" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âUndoâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;edit-undo&quot; or the label &quot;_Undo&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_UNINDENT" value="gtk-unindent" c:type="GTK_STOCK_UNINDENT" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âUnindentâ item and icon. The icon has an RTL variant.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;format-indent-less&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_YES" value="gtk-yes" c:type="GTK_STOCK_YES" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âYesâ item and icon.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ZOOM_100" value="gtk-zoom-100" c:type="GTK_STOCK_ZOOM_100" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âZoom 100%â item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;zoom-original&quot; or the label &quot;_Normal Size&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ZOOM_FIT" value="gtk-zoom-fit" c:type="GTK_STOCK_ZOOM_FIT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âZoom to Fitâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;zoom-fit-best&quot; or the label &quot;Best _Fit&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ZOOM_IN" value="gtk-zoom-in" c:type="GTK_STOCK_ZOOM_IN" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âZoom Inâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;zoom-in&quot; or the label &quot;Zoom _In&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STOCK_ZOOM_OUT" value="gtk-zoom-out" c:type="GTK_STOCK_ZOOM_OUT" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The âZoom Outâ item and icon.</doc> <doc-deprecated xml:space="preserve">Use named icon &quot;zoom-out&quot; or the label &quot;Zoom _Out&quot;.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_ACCELERATOR" value="accelerator" c:type="GTK_STYLE_CLASS_ACCELERATOR"> <doc xml:space="preserve">A CSS class to match an accelerator. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_ARROW" value="arrow" c:type="GTK_STYLE_CLASS_ARROW"> <doc xml:space="preserve">A CSS class used when rendering an arrow element. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_BACKGROUND" value="background" c:type="GTK_STYLE_CLASS_BACKGROUND"> <doc xml:space="preserve">A CSS class to match the window background. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_BOTTOM" value="bottom" c:type="GTK_STYLE_CLASS_BOTTOM"> <doc xml:space="preserve">A CSS class to indicate an area at the bottom of a widget. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_BUTTON" value="button" c:type="GTK_STYLE_CLASS_BUTTON"> <doc xml:space="preserve">A CSS class to match buttons. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_CALENDAR" value="calendar" c:type="GTK_STYLE_CLASS_CALENDAR"> <doc xml:space="preserve">A CSS class to match calendars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_CELL" value="cell" c:type="GTK_STYLE_CLASS_CELL"> <doc xml:space="preserve">A CSS class to match content rendered in cell views. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_CHECK" value="check" c:type="GTK_STYLE_CLASS_CHECK"> <doc xml:space="preserve">A CSS class to match check boxes. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_COMBOBOX_ENTRY" value="combobox-entry" c:type="GTK_STYLE_CLASS_COMBOBOX_ENTRY"> <doc xml:space="preserve">A CSS class to match combobox entries. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_CONTEXT_MENU" value="context-menu" c:type="GTK_STYLE_CLASS_CONTEXT_MENU"> <doc xml:space="preserve">A CSS class to match context menus. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_CSD" value="csd" c:type="GTK_STYLE_CLASS_CSD" version="3.14"> <doc xml:space="preserve">A CSS class that gets added to windows which have client-side decorations. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_CURSOR_HANDLE" value="cursor-handle" c:type="GTK_STYLE_CLASS_CURSOR_HANDLE"> <doc xml:space="preserve">A CSS class used when rendering a drag handle for text selection. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_DEFAULT" value="default" c:type="GTK_STYLE_CLASS_DEFAULT"> <doc xml:space="preserve">A CSS class to match the default widget. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_DESTRUCTIVE_ACTION" value="destructive-action" c:type="GTK_STYLE_CLASS_DESTRUCTIVE_ACTION" version="3.12"> <doc xml:space="preserve">A CSS class used when an action (usually a button) is one that is expected to remove or destroy something visible to the user. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_DIM_LABEL" value="dim-label" c:type="GTK_STYLE_CLASS_DIM_LABEL"> <doc xml:space="preserve">A CSS class to match dimmed labels. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_DND" value="dnd" c:type="GTK_STYLE_CLASS_DND"> <doc xml:space="preserve">A CSS class for a drag-and-drop indicator. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_DOCK" value="dock" c:type="GTK_STYLE_CLASS_DOCK"> <doc xml:space="preserve">A CSS class defining a dock area. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_ENTRY" value="entry" c:type="GTK_STYLE_CLASS_ENTRY"> <doc xml:space="preserve">A CSS class to match text entries. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_ERROR" value="error" c:type="GTK_STYLE_CLASS_ERROR"> <doc xml:space="preserve">A CSS class for an area displaying an error message, such as those in infobars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_EXPANDER" value="expander" c:type="GTK_STYLE_CLASS_EXPANDER"> <doc xml:space="preserve">A CSS class defining an expander, such as those in treeviews. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_FLAT" value="flat" c:type="GTK_STYLE_CLASS_FLAT" version="3.14"> <doc xml:space="preserve">A CSS class that is added when widgets that usually have a frame or border (like buttons or entries) should appear without it. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_FRAME" value="frame" c:type="GTK_STYLE_CLASS_FRAME"> <doc xml:space="preserve">A CSS class defining a frame delimiting content, such as #GtkFrame or the scrolled window frame around the scrollable area. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_GRIP" value="grip" c:type="GTK_STYLE_CLASS_GRIP"> <doc xml:space="preserve">A CSS class defining a resize grip. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_HEADER" value="header" c:type="GTK_STYLE_CLASS_HEADER"> <doc xml:space="preserve">A CSS class to match a header element. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_HIGHLIGHT" value="highlight" c:type="GTK_STYLE_CLASS_HIGHLIGHT"> <doc xml:space="preserve">A CSS class defining a highlighted area, such as headings in assistants and calendars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_HORIZONTAL" value="horizontal" c:type="GTK_STYLE_CLASS_HORIZONTAL"> <doc xml:space="preserve">A CSS class for horizontally layered widgets. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_IMAGE" value="image" c:type="GTK_STYLE_CLASS_IMAGE"> <doc xml:space="preserve">A CSS class defining an image, such as the icon in an entry. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_INFO" value="info" c:type="GTK_STYLE_CLASS_INFO"> <doc xml:space="preserve">A CSS class for an area displaying an informational message, such as those in infobars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_INLINE_TOOLBAR" value="inline-toolbar" c:type="GTK_STYLE_CLASS_INLINE_TOOLBAR"> <doc xml:space="preserve">A CSS class to match inline toolbars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_INSERTION_CURSOR" value="insertion-cursor" c:type="GTK_STYLE_CLASS_INSERTION_CURSOR"> <doc xml:space="preserve">A CSS class used when rendering a drag handle for the insertion cursor position. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_LABEL" value="label" c:type="GTK_STYLE_CLASS_LABEL" version="3.16"> <doc xml:space="preserve">A CSS class to match labels. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_LEFT" value="left" c:type="GTK_STYLE_CLASS_LEFT"> <doc xml:space="preserve">A CSS class to indicate an area at the left of a widget. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_LEVEL_BAR" value="level-bar" c:type="GTK_STYLE_CLASS_LEVEL_BAR"> <doc xml:space="preserve">A CSS class used when rendering a level indicator, such as a battery charge level, or a password strength. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_LINKED" value="linked" c:type="GTK_STYLE_CLASS_LINKED"> <doc xml:space="preserve">A CSS class to match a linked area, such as a box containing buttons belonging to the same control. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_LIST" value="list" c:type="GTK_STYLE_CLASS_LIST"> <doc xml:space="preserve">A CSS class to match lists. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_LIST_ROW" value="list-row" c:type="GTK_STYLE_CLASS_LIST_ROW"> <doc xml:space="preserve">A CSS class to match list rows. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_MARK" value="mark" c:type="GTK_STYLE_CLASS_MARK"> <doc xml:space="preserve">A CSS class defining marks in a widget, such as in scales. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_MENU" value="menu" c:type="GTK_STYLE_CLASS_MENU"> <doc xml:space="preserve">A CSS class to match menus. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_MENUBAR" value="menubar" c:type="GTK_STYLE_CLASS_MENUBAR"> <doc xml:space="preserve">A CSS class to menubars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_MENUITEM" value="menuitem" c:type="GTK_STYLE_CLASS_MENUITEM"> <doc xml:space="preserve">A CSS class to match menu items. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_MESSAGE_DIALOG" value="message-dialog" c:type="GTK_STYLE_CLASS_MESSAGE_DIALOG" version="3.14"> <doc xml:space="preserve">A CSS class that is added to message dialogs. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_MONOSPACE" value="monospace" c:type="GTK_STYLE_CLASS_MONOSPACE" version="3.16"> <doc xml:space="preserve">A CSS class that is added to text view that should use a monospace font. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_NEEDS_ATTENTION" value="needs-attention" c:type="GTK_STYLE_CLASS_NEEDS_ATTENTION" version="3.12"> <doc xml:space="preserve">A CSS class used when an element needs the user attention, for instance a button in a stack switcher corresponding to a hidden page that changed state. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_NOTEBOOK" value="notebook" c:type="GTK_STYLE_CLASS_NOTEBOOK"> <doc xml:space="preserve">A CSS class defining a notebook. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_OSD" value="osd" c:type="GTK_STYLE_CLASS_OSD"> <doc xml:space="preserve">A CSS class used when rendering an OSD (On Screen Display) element, on top of another container. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_OVERSHOOT" value="overshoot" c:type="GTK_STYLE_CLASS_OVERSHOOT" version="3.14"> <doc xml:space="preserve">A CSS class that is added on the visual hints that happen when scrolling is attempted past the limits of a scrollable area. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_PANE_SEPARATOR" value="pane-separator" c:type="GTK_STYLE_CLASS_PANE_SEPARATOR"> <doc xml:space="preserve">A CSS class for a pane separator, such as those in #GtkPaned. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_PAPER" value="paper" c:type="GTK_STYLE_CLASS_PAPER" version="3.16"> <doc xml:space="preserve">A CSS class that is added to areas that should look like paper. This is used in print previews and themes are encouraged to style it as black text on white background. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_POPOVER" value="popover" c:type="GTK_STYLE_CLASS_POPOVER" version="3.14"> <doc xml:space="preserve">A CSS class that matches popovers. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_POPUP" value="popup" c:type="GTK_STYLE_CLASS_POPUP" version="3.14"> <doc xml:space="preserve">A CSS class that is added to the toplevel windows used for menus. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_PRIMARY_TOOLBAR" value="primary-toolbar" c:type="GTK_STYLE_CLASS_PRIMARY_TOOLBAR"> <doc xml:space="preserve">A CSS class to match primary toolbars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_PROGRESSBAR" value="progressbar" c:type="GTK_STYLE_CLASS_PROGRESSBAR"> <doc xml:space="preserve">A CSS class to use when rendering activity as a progressbar. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_PULSE" value="pulse" c:type="GTK_STYLE_CLASS_PULSE"> <doc xml:space="preserve">A CSS class to use when rendering a pulse in an indeterminate progress bar. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_QUESTION" value="question" c:type="GTK_STYLE_CLASS_QUESTION"> <doc xml:space="preserve">A CSS class for an area displaying a question to the user, such as those in infobars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_RADIO" value="radio" c:type="GTK_STYLE_CLASS_RADIO"> <doc xml:space="preserve">A CSS class to match radio buttons. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_RAISED" value="raised" c:type="GTK_STYLE_CLASS_RAISED"> <doc xml:space="preserve">A CSS class to match a raised control, such as a raised button on a toolbar. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_READ_ONLY" value="read-only" c:type="GTK_STYLE_CLASS_READ_ONLY"> <doc xml:space="preserve">A CSS class used to indicate a read-only state. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_RIGHT" value="right" c:type="GTK_STYLE_CLASS_RIGHT"> <doc xml:space="preserve">A CSS class to indicate an area at the right of a widget. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_RUBBERBAND" value="rubberband" c:type="GTK_STYLE_CLASS_RUBBERBAND"> <doc xml:space="preserve">A CSS class to match the rubberband selection rectangle. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SCALE" value="scale" c:type="GTK_STYLE_CLASS_SCALE"> <doc xml:space="preserve">A CSS class to match scale widgets. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SCALE_HAS_MARKS_ABOVE" value="scale-has-marks-above" c:type="GTK_STYLE_CLASS_SCALE_HAS_MARKS_ABOVE"> <doc xml:space="preserve">A CSS class to match scale widgets with marks attached, all the marks are above for horizontal #GtkScale. left for vertical #GtkScale. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SCALE_HAS_MARKS_BELOW" value="scale-has-marks-below" c:type="GTK_STYLE_CLASS_SCALE_HAS_MARKS_BELOW"> <doc xml:space="preserve">A CSS class to match scale widgets with marks attached, all the marks are below for horizontal #GtkScale, right for vertical #GtkScale. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SCROLLBAR" value="scrollbar" c:type="GTK_STYLE_CLASS_SCROLLBAR"> <doc xml:space="preserve">A CSS class to match scrollbars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SCROLLBARS_JUNCTION" value="scrollbars-junction" c:type="GTK_STYLE_CLASS_SCROLLBARS_JUNCTION"> <doc xml:space="preserve">A CSS class to match the junction area between an horizontal and vertical scrollbar, when theyâre both shown. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SEPARATOR" value="separator" c:type="GTK_STYLE_CLASS_SEPARATOR"> <doc xml:space="preserve">A CSS class for a separator. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SIDEBAR" value="sidebar" c:type="GTK_STYLE_CLASS_SIDEBAR"> <doc xml:space="preserve">A CSS class defining a sidebar, such as the left side in a file chooser. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SLIDER" value="slider" c:type="GTK_STYLE_CLASS_SLIDER"> <doc xml:space="preserve">A CSS class to match sliders. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SPINBUTTON" value="spinbutton" c:type="GTK_STYLE_CLASS_SPINBUTTON"> <doc xml:space="preserve">A CSS class defining an spinbutton. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SPINNER" value="spinner" c:type="GTK_STYLE_CLASS_SPINNER"> <doc xml:space="preserve">A CSS class to use when rendering activity as a âspinnerâ. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_STATUSBAR" value="statusbar" c:type="GTK_STYLE_CLASS_STATUSBAR" version="3.16"> <doc xml:space="preserve">A CSS class to match statusbars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SUBTITLE" value="subtitle" c:type="GTK_STYLE_CLASS_SUBTITLE" version="3.14"> <doc xml:space="preserve">A CSS class used for the subtitle label in a titlebar in a toplevel window. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_SUGGESTED_ACTION" value="suggested-action" c:type="GTK_STYLE_CLASS_SUGGESTED_ACTION" version="3.12"> <doc xml:space="preserve">A CSS class used when an action (usually a button) is the primary suggested action in a specific context. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_TITLE" value="title" c:type="GTK_STYLE_CLASS_TITLE" version="3.14"> <doc xml:space="preserve">A CSS class used for the title label in a titlebar in a toplevel window. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_TITLEBAR" value="titlebar" c:type="GTK_STYLE_CLASS_TITLEBAR"> <doc xml:space="preserve">A CSS class used when rendering a titlebar in a toplevel window. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_TOOLBAR" value="toolbar" c:type="GTK_STYLE_CLASS_TOOLBAR"> <doc xml:space="preserve">A CSS class to match toolbars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_TOOLTIP" value="tooltip" c:type="GTK_STYLE_CLASS_TOOLTIP"> <doc xml:space="preserve">A CSS class to match tooltip windows. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_TOP" value="top" c:type="GTK_STYLE_CLASS_TOP"> <doc xml:space="preserve">A CSS class to indicate an area at the top of a widget. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_TOUCH_SELECTION" value="touch-selection" c:type="GTK_STYLE_CLASS_TOUCH_SELECTION" version="3.16"> <doc xml:space="preserve">A CSS class for touch selection popups on entries and text views. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_TROUGH" value="trough" c:type="GTK_STYLE_CLASS_TROUGH"> <doc xml:space="preserve">A CSS class to match troughs, as in scrollbars and progressbars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_UNDERSHOOT" value="undershoot" c:type="GTK_STYLE_CLASS_UNDERSHOOT" version="3.16"> <doc xml:space="preserve">A CSS class that is added on the visual hints that happen where content is 'scrolled off' and can be made visible by scrolling. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_VERTICAL" value="vertical" c:type="GTK_STYLE_CLASS_VERTICAL"> <doc xml:space="preserve">A CSS class for vertically layered widgets. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_VIEW" value="view" c:type="GTK_STYLE_CLASS_VIEW"> <doc xml:space="preserve">A CSS class defining a view, such as iconviews or treeviews. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_WARNING" value="warning" c:type="GTK_STYLE_CLASS_WARNING"> <doc xml:space="preserve">A CSS class for an area displaying a warning message, such as those in infobars. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_CLASS_WIDE" value="wide" c:type="GTK_STYLE_CLASS_WIDE" version="3.16"> <doc xml:space="preserve">A CSS class to indicate that a UI element should be 'wide'. Used by #GtkPaned. Refer to individual widget documentation for used style classes.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_BACKGROUND_COLOR" value="background-color" c:type="GTK_STYLE_PROPERTY_BACKGROUND_COLOR"> <doc xml:space="preserve">A property holding the background color of rendered elements as a #GdkRGBA.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_BACKGROUND_IMAGE" value="background-image" c:type="GTK_STYLE_PROPERTY_BACKGROUND_IMAGE"> <doc xml:space="preserve">A property holding the elementâs background as a #cairo_pattern_t.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_BORDER_COLOR" value="border-color" c:type="GTK_STYLE_PROPERTY_BORDER_COLOR"> <doc xml:space="preserve">A property holding the elementâs border color as a #GdkRGBA.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_BORDER_RADIUS" value="border-radius" c:type="GTK_STYLE_PROPERTY_BORDER_RADIUS"> <doc xml:space="preserve">A property holding the rendered elementâs border radius in pixels as a #gint.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_BORDER_STYLE" value="border-style" c:type="GTK_STYLE_PROPERTY_BORDER_STYLE"> <doc xml:space="preserve">A property holding the elementâs border style as a #GtkBorderStyle.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_BORDER_WIDTH" value="border-width" c:type="GTK_STYLE_PROPERTY_BORDER_WIDTH"> <doc xml:space="preserve">A property holding the rendered elementâs border width in pixels as a #GtkBorder. The border is the intermediary spacing property of the padding/border/margin series. gtk_render_frame() uses this property to find out the frame line width, so #GtkWidgets rendering frames may need to add up this padding when requesting size</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_COLOR" value="color" c:type="GTK_STYLE_PROPERTY_COLOR"> <doc xml:space="preserve">A property holding the foreground color of rendered elements as a #GdkRGBA.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_FONT" value="font" c:type="GTK_STYLE_PROPERTY_FONT"> <doc xml:space="preserve">A property holding the font properties used when rendering text as a #PangoFontDescription.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_MARGIN" value="margin" c:type="GTK_STYLE_PROPERTY_MARGIN"> <doc xml:space="preserve">A property holding the rendered elementâs margin as a #GtkBorder. The margin is defined as the spacing between the border of the element and its surrounding elements. It is external to #GtkWidget's size allocations, and the most external spacing property of the padding/border/margin series.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROPERTY_PADDING" value="padding" c:type="GTK_STYLE_PROPERTY_PADDING"> <doc xml:space="preserve">A property holding the rendered elementâs padding as a #GtkBorder. The padding is defined as the spacing between the inner part of the element border and its child. Itâs the innermost spacing property of the padding/border/margin series.</doc> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_PROVIDER_PRIORITY_APPLICATION" value="600" c:type="GTK_STYLE_PROVIDER_PRIORITY_APPLICATION"> <doc xml:space="preserve">A priority that can be used when adding a #GtkStyleProvider for application-specific style information.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="STYLE_PROVIDER_PRIORITY_FALLBACK" value="1" c:type="GTK_STYLE_PROVIDER_PRIORITY_FALLBACK"> <doc xml:space="preserve">The priority used for default style information that is used in the absence of themes. Note that this is not very useful for providing default styling for custom style classes - themes are likely to override styling provided at this priority with catch-all `* {...}` rules.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="STYLE_PROVIDER_PRIORITY_SETTINGS" value="400" c:type="GTK_STYLE_PROVIDER_PRIORITY_SETTINGS"> <doc xml:space="preserve">The priority used for style information provided via #GtkSettings. This priority is higher than #GTK_STYLE_PROVIDER_PRIORITY_THEME to let settings override themes.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="STYLE_PROVIDER_PRIORITY_THEME" value="200" c:type="GTK_STYLE_PROVIDER_PRIORITY_THEME"> <doc xml:space="preserve">The priority used for style information provided by themes.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="STYLE_PROVIDER_PRIORITY_USER" value="800" c:type="GTK_STYLE_PROVIDER_PRIORITY_USER"> <doc xml:space="preserve">The priority used for the style information from `~/.gtk-3.0.css`. You should not use priorities higher than this, to give the user the last word.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="STYLE_REGION_COLUMN" value="column" c:type="GTK_STYLE_REGION_COLUMN" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">A widget region name to define a treeview column.</doc> <doc-deprecated xml:space="preserve">Don't use regions.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_REGION_COLUMN_HEADER" value="column-header" c:type="GTK_STYLE_REGION_COLUMN_HEADER" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">A widget region name to define a treeview column header.</doc> <doc-deprecated xml:space="preserve">Don't use regions.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_REGION_ROW" value="row" c:type="GTK_STYLE_REGION_ROW" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">A widget region name to define a treeview row.</doc> <doc-deprecated xml:space="preserve">Don't use regions.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <constant name="STYLE_REGION_TAB" value="tab" c:type="GTK_STYLE_REGION_TAB" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">A widget region name to define a notebook tab.</doc> <doc-deprecated xml:space="preserve">Don't use regions.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </constant> <class name="Scale" c:symbol-prefix="scale" c:type="GtkScale" parent="Range" glib:type-name="GtkScale" glib:get-type="gtk_scale_get_type" glib:type-struct="ScaleClass"> <doc xml:space="preserve">A GtkScale is a slider control used to select a numeric value. To use it, youâll probably want to investigate the methods on its base class, #GtkRange, in addition to the methods for GtkScale itself. To set the value of a scale, you would normally use gtk_range_set_value(). To detect changes to the value, you would normally use the #GtkRange::value-changed signal. Note that using the same upper and lower bounds for the #GtkScale (through the #GtkRange methods) will hide the slider itself. This is useful for applications that want to show an undeterminate value on the scale, without changing the layout of the application (such as movie or music players). # GtkScale as GtkBuildable GtkScale supports a custom <marks> element, which can contain multiple <mark> elements. The âvalueâ and âpositionâ attributes have the same meaning as gtk_scale_add_mark() parameters of the same name. If the element is not empty, its content is taken as the markup to show at the mark. It can be translated with the usual âtranslatableâ and âcontextâ attributes. # CSS nodes |[<!-- language="plain" --> scale[.fine-tune][.marks-before][.marks-after] âââ marks.top â âââ mark â â âââ [label] â â â°ââ indicator â â â â°ââ mark âââ [value] âââ contents â â°ââ trough â âââ slider â âââ [highlight] â â°ââ [fill] â°ââ marks.bottom âââ mark â âââ indicator â â°ââ [label] â°ââ mark ]| GtkScale has a main CSS node with name scale and a subnode for its contents, with subnodes named trough and slider. The main node gets the style class .fine-tune added when the scale is in 'fine-tuning' mode. If the scale has an origin (see gtk_scale_set_has_origin()), there is a subnode with name highlight below the trough node that is used for rendering the highlighted part of the trough. If the scale is showing a fill level (see gtk_range_set_show_fill_level()), there is a subnode with name fill below the trough node that is used for rendering the filled in part of the trough. If marks are present, there is a marks subnode before or after the contents node, below which each mark gets a node with name mark. The marks nodes get either the .top or .bottom style class. The mark node has a subnode named indicator. If the mark has text, it also has a subnode named label. When the mark is either above or left of the scale, the label subnode is the first when present. Otherwise, the indicator subnode is the first. The main CSS node gets the 'marks-before' and/or 'marks-after' style classes added depending on what marks are present. If the scale is displaying the value (see #GtkScale:draw-value), there is subnode with name value.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_scale_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkScale.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkScale</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the scaleâs orientation.</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkAdjustment which sets the range of the scale, or %NULL to create a new adjustment.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <constructor name="new_with_range" c:identifier="gtk_scale_new_with_range" version="3.0"> <doc xml:space="preserve">Creates a new scale widget with the given orientation that lets 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 gtk_scale_set_digits() to correct it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkScale</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the scaleâs orientation.</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="min" transfer-ownership="none"> <doc xml:space="preserve">minimum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="max" transfer-ownership="none"> <doc xml:space="preserve">maximum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">step increment (tick size) used with keyboard shortcuts</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <virtual-method name="draw_value"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="format_value"> <return-value transfer-ownership="full"> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_layout_offsets" invoker="get_layout_offsets" version="2.4"> <doc xml:space="preserve">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 #GtkScale:draw-value property is %FALSE, the return values are undefined.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store Y offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <method name="add_mark" c:identifier="gtk_scale_add_mark" version="2.16"> <doc xml:space="preserve">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 gtk_scale_clear_marks().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the value at which the mark is placed, must be between the lower and upper limits of the scalesâ adjustment</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="markup" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Text to be shown at the mark, using [Pango markup][PangoMarkupFormat], or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="clear_marks" c:identifier="gtk_scale_clear_marks" version="2.16"> <doc xml:space="preserve">Removes any marks that have been added with gtk_scale_add_mark().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> </parameters> </method> <method name="get_digits" c:identifier="gtk_scale_get_digits"> <doc xml:space="preserve">Gets the number of decimal places that are displayed in the value.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of decimal places that are displayed</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> </parameters> </method> <method name="get_draw_value" c:identifier="gtk_scale_get_draw_value"> <doc xml:space="preserve">Returns whether the current value is displayed as a string next to the slider.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the current value is displayed as a string</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> </parameters> </method> <method name="get_has_origin" c:identifier="gtk_scale_get_has_origin" version="3.4"> <doc xml:space="preserve">Returns whether the scale has an origin.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the scale has an origin.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> </parameters> </method> <method name="get_layout" c:identifier="gtk_scale_get_layout" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #PangoLayout for this scale, or %NULL if the #GtkScale:draw-value property is %FALSE.</doc> <type name="Pango.Layout" c:type="PangoLayout*"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">A #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> </parameters> </method> <method name="get_layout_offsets" c:identifier="gtk_scale_get_layout_offsets" version="2.4"> <doc xml:space="preserve">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 #GtkScale:draw-value property is %FALSE, the return values are undefined.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store Y offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_value_pos" c:identifier="gtk_scale_get_value_pos"> <doc xml:space="preserve">Gets the position in which the current value is displayed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the position in which the current value is displayed</doc> <type name="PositionType" c:type="GtkPositionType"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> </parameters> </method> <method name="set_digits" c:identifier="gtk_scale_set_digits"> <doc xml:space="preserve">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 #GtkScale:draw-value is %TRUE when the value changes. If you want to enforce rounding the value when #GtkScale:draw-value is %FALSE, you can set #GtkRange: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 the #GtkScale::format-value signal to format the displayed value yourself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> <parameter name="digits" transfer-ownership="none"> <doc xml:space="preserve">the number of decimal places to display, e.g. use 1 to display 1.0, 2 to display 1.00, etc</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_draw_value" c:identifier="gtk_scale_set_draw_value"> <doc xml:space="preserve">Specifies whether the current value is displayed as a string next to the slider.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> <parameter name="draw_value" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to draw the value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_has_origin" c:identifier="gtk_scale_set_has_origin" version="3.4"> <doc xml:space="preserve">If #GtkScale: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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> <parameter name="has_origin" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the scale has an origin</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_value_pos" c:identifier="gtk_scale_set_value_pos"> <doc xml:space="preserve">Sets the position in which the current value is displayed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">the position in which the current value is displayed</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </method> <property name="digits" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="draw-value" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-origin" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="value-pos" writable="1" transfer-ownership="none"> <type name="PositionType"/> </property> <field name="range"> <type name="Range" c:type="GtkRange"/> </field> <field name="priv" readable="0" private="1"> <type name="ScalePrivate" c:type="GtkScalePrivate*"/> </field> <glib:signal name="format-value" when="last"> <doc xml:space="preserve">Signal which allows you to change how the scale value is displayed. Connect a signal handler which returns an allocated string representing @value. That string will then be used to display the scale's value. If no user-provided handlers are installed, the value will be displayed on its own, rounded according to the value of the #GtkScale:digits property. Here's an example signal handler which displays a value 1.0 as with "-->1.0<--". |[<!-- language="C" --> static gchar* format_value_callback (GtkScale *scale, gdouble value) { return g_strdup_printf ("-->\%0.*g<--", gtk_scale_get_digits (scale), value); } ]|</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">allocated string representing @value</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the value to format</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> </class> <class name="ScaleAccessible" c:symbol-prefix="scale_accessible" c:type="GtkScaleAccessible" parent="RangeAccessible" glib:type-name="GtkScaleAccessible" glib:get-type="gtk_scale_accessible_get_type" glib:type-struct="ScaleAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Value"/> <field name="parent"> <type name="RangeAccessible" c:type="GtkRangeAccessible"/> </field> <field name="priv"> <type name="ScaleAccessiblePrivate" c:type="GtkScaleAccessiblePrivate*"/> </field> </class> <record name="ScaleAccessibleClass" c:type="GtkScaleAccessibleClass" glib:is-gtype-struct-for="ScaleAccessible"> <field name="parent_class"> <type name="RangeAccessibleClass" c:type="GtkRangeAccessibleClass"/> </field> </record> <record name="ScaleAccessiblePrivate" c:type="GtkScaleAccessiblePrivate" disguised="1"> </record> <class name="ScaleButton" c:symbol-prefix="scale_button" c:type="GtkScaleButton" parent="Button" glib:type-name="GtkScaleButton" glib:get-type="gtk_scale_button_get_type" glib:type-struct="ScaleButtonClass"> <doc xml:space="preserve">#GtkScaleButton provides a button which pops up a scale widget. This kind of widget is commonly used for volume controls in multimedia applications, and GTK+ provides a #GtkVolumeButton subclass that is tailored for this use case. # CSS nodes GtkScaleButton has a single CSS node with name button. To differentiate it from a plain #GtkButton, it gets the .scale style class.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_scale_button_new" version="2.12"> <doc xml:space="preserve">Creates a #GtkScaleButton, with a range between @min and @max, with a stepping of @step.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkScaleButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="min" transfer-ownership="none"> <doc xml:space="preserve">the minimum value of the scale (usually 0)</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="max" transfer-ownership="none"> <doc xml:space="preserve">the maximum value of the scale (usually 100)</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">the stepping of value when a scroll-wheel event, or up/down arrow event occurs (usually 2)</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="icons" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a %NULL-terminated array of icon names, or %NULL if you want to set the list later with gtk_scale_button_set_icons()</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> </parameters> </constructor> <virtual-method name="value_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <method name="get_adjustment" c:identifier="gtk_scale_button_get_adjustment" version="2.12"> <doc xml:space="preserve">Gets the #GtkAdjustment associated with the #GtkScaleButtonâs scale. See gtk_range_get_adjustment() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the adjustment associated with the scale</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScaleButton</doc> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> </parameters> </method> <method name="get_minus_button" c:identifier="gtk_scale_button_get_minus_button" version="2.14"> <doc xml:space="preserve">Retrieves the minus button of the #GtkScaleButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the minus button of the #GtkScaleButton as a #GtkButton</doc> <type name="Button" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScaleButton</doc> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> </parameters> </method> <method name="get_plus_button" c:identifier="gtk_scale_button_get_plus_button" version="2.14"> <doc xml:space="preserve">Retrieves the plus button of the #GtkScaleButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the plus button of the #GtkScaleButton as a #GtkButton</doc> <type name="Button" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScaleButton</doc> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> </parameters> </method> <method name="get_popup" c:identifier="gtk_scale_button_get_popup" version="2.14"> <doc xml:space="preserve">Retrieves the popup of the #GtkScaleButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the popup of the #GtkScaleButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScaleButton</doc> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> </parameters> </method> <method name="get_value" c:identifier="gtk_scale_button_get_value" version="2.12"> <doc xml:space="preserve">Gets the current value of the scale button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">current value of the scale button</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScaleButton</doc> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> </parameters> </method> <method name="set_adjustment" c:identifier="gtk_scale_button_set_adjustment" version="2.12"> <doc xml:space="preserve">Sets the #GtkAdjustment to be used as a model for the #GtkScaleButtonâs scale. See gtk_range_set_adjustment() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScaleButton</doc> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_icons" c:identifier="gtk_scale_button_set_icons" version="2.12"> <doc xml:space="preserve">Sets the icons to be used by the scale button. For details, see the #GtkScaleButton:icons property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScaleButton</doc> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> <parameter name="icons" transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated array of icon names</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> </parameters> </method> <method name="set_value" c:identifier="gtk_scale_button_set_value" version="2.12"> <doc xml:space="preserve">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 #GtkScaleButton::value-changed signal if the value changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScaleButton</doc> <type name="ScaleButton" c:type="GtkScaleButton*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">new value of the scale button</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <property name="adjustment" writable="1" transfer-ownership="none"> <type name="Adjustment"/> </property> <property name="icons" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <array> <type name="utf8"/> </array> </property> <property name="size" writable="1" transfer-ownership="none"> <type name="IconSize"/> </property> <property name="value" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <field name="parent"> <type name="Button" c:type="GtkButton"/> </field> <field name="priv" readable="0" private="1"> <type name="ScaleButtonPrivate" c:type="GtkScaleButtonPrivate*"/> </field> <glib:signal name="popdown" when="last" action="1" version="2.12"> <doc xml:space="preserve">The ::popdown signal is a [keybinding signal][GtkBindingSignal] which gets emitted to popdown the scale widget. The default binding for this signal is Escape.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="popup" when="last" action="1" version="2.12"> <doc xml:space="preserve">The ::popup signal is a [keybinding signal][GtkBindingSignal] which gets emitted to popup the scale widget. The default bindings for this signal are Space, Enter and Return.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="value-changed" when="last" version="2.12"> <doc xml:space="preserve">The ::value-changed signal is emitted when the value field has changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </glib:signal> </class> <class name="ScaleButtonAccessible" c:symbol-prefix="scale_button_accessible" c:type="GtkScaleButtonAccessible" parent="ButtonAccessible" glib:type-name="GtkScaleButtonAccessible" glib:get-type="gtk_scale_button_accessible_get_type" glib:type-struct="ScaleButtonAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <implements name="Atk.Value"/> <field name="parent"> <type name="ButtonAccessible" c:type="GtkButtonAccessible"/> </field> <field name="priv"> <type name="ScaleButtonAccessiblePrivate" c:type="GtkScaleButtonAccessiblePrivate*"/> </field> </class> <record name="ScaleButtonAccessibleClass" c:type="GtkScaleButtonAccessibleClass" glib:is-gtype-struct-for="ScaleButtonAccessible"> <field name="parent_class"> <type name="ButtonAccessibleClass" c:type="GtkButtonAccessibleClass"/> </field> </record> <record name="ScaleButtonAccessiblePrivate" c:type="GtkScaleButtonAccessiblePrivate" disguised="1"> </record> <record name="ScaleButtonClass" c:type="GtkScaleButtonClass" glib:is-gtype-struct-for="ScaleButton"> <field name="parent_class"> <type name="ButtonClass" c:type="GtkButtonClass"/> </field> <field name="value_changed"> <callback name="value_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <type name="ScaleButton" c:type="GtkScaleButton*"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ScaleButtonPrivate" c:type="GtkScaleButtonPrivate" disguised="1"> </record> <record name="ScaleClass" c:type="GtkScaleClass" glib:is-gtype-struct-for="Scale"> <field name="parent_class"> <type name="RangeClass" c:type="GtkRangeClass"/> </field> <field name="format_value"> <callback name="format_value"> <return-value transfer-ownership="full"> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="scale" transfer-ownership="none"> <type name="Scale" c:type="GtkScale*"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="draw_value"> <callback name="draw_value"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="scale" transfer-ownership="none"> <type name="Scale" c:type="GtkScale*"/> </parameter> </parameters> </callback> </field> <field name="get_layout_offsets"> <callback name="get_layout_offsets"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScale</doc> <type name="Scale" c:type="GtkScale*"/> </parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store Y offset of layout, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ScalePrivate" c:type="GtkScalePrivate" disguised="1"> </record> <enumeration name="ScrollStep" glib:type-name="GtkScrollStep" glib:get-type="gtk_scroll_step_get_type" c:type="GtkScrollStep"> <member name="steps" value="0" c:identifier="GTK_SCROLL_STEPS" glib:nick="steps"> <doc xml:space="preserve">Scroll in steps.</doc> </member> <member name="pages" value="1" c:identifier="GTK_SCROLL_PAGES" glib:nick="pages"> <doc xml:space="preserve">Scroll by pages.</doc> </member> <member name="ends" value="2" c:identifier="GTK_SCROLL_ENDS" glib:nick="ends"> <doc xml:space="preserve">Scroll to ends.</doc> </member> <member name="horizontal_steps" value="3" c:identifier="GTK_SCROLL_HORIZONTAL_STEPS" glib:nick="horizontal-steps"> <doc xml:space="preserve">Scroll in horizontal steps.</doc> </member> <member name="horizontal_pages" value="4" c:identifier="GTK_SCROLL_HORIZONTAL_PAGES" glib:nick="horizontal-pages"> <doc xml:space="preserve">Scroll by horizontal pages.</doc> </member> <member name="horizontal_ends" value="5" c:identifier="GTK_SCROLL_HORIZONTAL_ENDS" glib:nick="horizontal-ends"> <doc xml:space="preserve">Scroll to the horizontal ends.</doc> </member> </enumeration> <enumeration name="ScrollType" glib:type-name="GtkScrollType" glib:get-type="gtk_scroll_type_get_type" c:type="GtkScrollType"> <doc xml:space="preserve">Scrolling types.</doc> <member name="none" value="0" c:identifier="GTK_SCROLL_NONE" glib:nick="none"> <doc xml:space="preserve">No scrolling.</doc> </member> <member name="jump" value="1" c:identifier="GTK_SCROLL_JUMP" glib:nick="jump"> <doc xml:space="preserve">Jump to new location.</doc> </member> <member name="step_backward" value="2" c:identifier="GTK_SCROLL_STEP_BACKWARD" glib:nick="step-backward"> <doc xml:space="preserve">Step backward.</doc> </member> <member name="step_forward" value="3" c:identifier="GTK_SCROLL_STEP_FORWARD" glib:nick="step-forward"> <doc xml:space="preserve">Step forward.</doc> </member> <member name="page_backward" value="4" c:identifier="GTK_SCROLL_PAGE_BACKWARD" glib:nick="page-backward"> <doc xml:space="preserve">Page backward.</doc> </member> <member name="page_forward" value="5" c:identifier="GTK_SCROLL_PAGE_FORWARD" glib:nick="page-forward"> <doc xml:space="preserve">Page forward.</doc> </member> <member name="step_up" value="6" c:identifier="GTK_SCROLL_STEP_UP" glib:nick="step-up"> <doc xml:space="preserve">Step up.</doc> </member> <member name="step_down" value="7" c:identifier="GTK_SCROLL_STEP_DOWN" glib:nick="step-down"> <doc xml:space="preserve">Step down.</doc> </member> <member name="page_up" value="8" c:identifier="GTK_SCROLL_PAGE_UP" glib:nick="page-up"> <doc xml:space="preserve">Page up.</doc> </member> <member name="page_down" value="9" c:identifier="GTK_SCROLL_PAGE_DOWN" glib:nick="page-down"> <doc xml:space="preserve">Page down.</doc> </member> <member name="step_left" value="10" c:identifier="GTK_SCROLL_STEP_LEFT" glib:nick="step-left"> <doc xml:space="preserve">Step to the left.</doc> </member> <member name="step_right" value="11" c:identifier="GTK_SCROLL_STEP_RIGHT" glib:nick="step-right"> <doc xml:space="preserve">Step to the right.</doc> </member> <member name="page_left" value="12" c:identifier="GTK_SCROLL_PAGE_LEFT" glib:nick="page-left"> <doc xml:space="preserve">Page to the left.</doc> </member> <member name="page_right" value="13" c:identifier="GTK_SCROLL_PAGE_RIGHT" glib:nick="page-right"> <doc xml:space="preserve">Page to the right.</doc> </member> <member name="start" value="14" c:identifier="GTK_SCROLL_START" glib:nick="start"> <doc xml:space="preserve">Scroll to start.</doc> </member> <member name="end" value="15" c:identifier="GTK_SCROLL_END" glib:nick="end"> <doc xml:space="preserve">Scroll to end.</doc> </member> </enumeration> <interface name="Scrollable" c:symbol-prefix="scrollable" c:type="GtkScrollable" glib:type-name="GtkScrollable" glib:get-type="gtk_scrollable_get_type" glib:type-struct="ScrollableInterface"> <doc xml:space="preserve">#GtkScrollable is an interface that is implemented by widgets with native scrolling ability. To implement this interface you should override the #GtkScrollable:hadjustment and #GtkScrollable:vadjustment properties. ## Creating a scrollable widget All scrollable widgets should do the following. - When a parent widget sets the scrollable child widgetâs adjustments, the widget should populate the adjustmentsâ #GtkAdjustment:lower, #GtkAdjustment:upper, #GtkAdjustment:step-increment, #GtkAdjustment:page-increment and #GtkAdjustment:page-size properties and connect to the #GtkAdjustment::value-changed signal. - Because its preferred size is the size for a fully expanded widget, the scrollable widget must be able to cope with underallocations. This means that it must accept any value passed to its #GtkWidgetClass.size_allocate() function. - When the parent allocates space to the scrollable child widget, the widget should update the adjustmentsâ properties with new values. - When any of the adjustments emits the #GtkAdjustment::value-changed signal, the scrollable widget should scroll its contents.</doc> <virtual-method name="get_border" invoker="get_border" version="3.16"> <doc xml:space="preserve">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 overlayed graphics, like the overshoot indication, at the right position.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @border has been set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> <parameter name="border" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the results</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </virtual-method> <method name="get_border" c:identifier="gtk_scrollable_get_border" version="3.16"> <doc xml:space="preserve">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 overlayed graphics, like the overshoot indication, at the right position.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @border has been set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> <parameter name="border" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the results</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </method> <method name="get_hadjustment" c:identifier="gtk_scrollable_get_hadjustment" version="3.0"> <doc xml:space="preserve">Retrieves the #GtkAdjustment used for horizontal scrolling.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">horizontal #GtkAdjustment.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> </parameters> </method> <method name="get_hscroll_policy" c:identifier="gtk_scrollable_get_hscroll_policy" version="3.0"> <doc xml:space="preserve">Gets the horizontal #GtkScrollablePolicy.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The horizontal #GtkScrollablePolicy.</doc> <type name="ScrollablePolicy" c:type="GtkScrollablePolicy"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> </parameters> </method> <method name="get_vadjustment" c:identifier="gtk_scrollable_get_vadjustment" version="3.0"> <doc xml:space="preserve">Retrieves the #GtkAdjustment used for vertical scrolling.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">vertical #GtkAdjustment.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> </parameters> </method> <method name="get_vscroll_policy" c:identifier="gtk_scrollable_get_vscroll_policy" version="3.0"> <doc xml:space="preserve">Gets the vertical #GtkScrollablePolicy.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The vertical #GtkScrollablePolicy.</doc> <type name="ScrollablePolicy" c:type="GtkScrollablePolicy"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> </parameters> </method> <method name="set_hadjustment" c:identifier="gtk_scrollable_set_hadjustment" version="3.0"> <doc xml:space="preserve">Sets the horizontal adjustment of the #GtkScrollable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> <parameter name="hadjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_hscroll_policy" c:identifier="gtk_scrollable_set_hscroll_policy" version="3.0"> <doc xml:space="preserve">Sets the #GtkScrollablePolicy to determine whether horizontal scrolling should start below the minimum width or below the natural width.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> <parameter name="policy" transfer-ownership="none"> <doc xml:space="preserve">the horizontal #GtkScrollablePolicy</doc> <type name="ScrollablePolicy" c:type="GtkScrollablePolicy"/> </parameter> </parameters> </method> <method name="set_vadjustment" c:identifier="gtk_scrollable_set_vadjustment" version="3.0"> <doc xml:space="preserve">Sets the vertical adjustment of the #GtkScrollable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> <parameter name="vadjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_vscroll_policy" c:identifier="gtk_scrollable_set_vscroll_policy" version="3.0"> <doc xml:space="preserve">Sets the #GtkScrollablePolicy to determine whether vertical scrolling should start below the minimum height or below the natural height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </instance-parameter> <parameter name="policy" transfer-ownership="none"> <doc xml:space="preserve">the vertical #GtkScrollablePolicy</doc> <type name="ScrollablePolicy" c:type="GtkScrollablePolicy"/> </parameter> </parameters> </method> <property name="hadjustment" version="3.0" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">Horizontal #GtkAdjustment of the scrollable widget. This adjustment is shared between the scrollable widget and its parent.</doc> <type name="Adjustment"/> </property> <property name="hscroll-policy" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether horizontal scrolling should start once the scrollable widget is allocated less than its minimum width or less than its natural width.</doc> <type name="ScrollablePolicy"/> </property> <property name="vadjustment" version="3.0" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">Verical #GtkAdjustment of the scrollable widget. This adjustment is shared between the scrollable widget and its parent.</doc> <type name="Adjustment"/> </property> <property name="vscroll-policy" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Determines whether vertical scrolling should start once the scrollable widget is allocated less than its minimum height or less than its natural height.</doc> <type name="ScrollablePolicy"/> </property> </interface> <record name="ScrollableInterface" c:type="GtkScrollableInterface" glib:is-gtype-struct-for="Scrollable"> <field name="base_iface"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="get_border"> <callback name="get_border"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @border has been set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="scrollable" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollable</doc> <type name="Scrollable" c:type="GtkScrollable*"/> </parameter> <parameter name="border" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the results</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </callback> </field> </record> <enumeration name="ScrollablePolicy" glib:type-name="GtkScrollablePolicy" glib:get-type="gtk_scrollable_policy_get_type" c:type="GtkScrollablePolicy"> <doc xml:space="preserve">Defines the policy to be used in a scrollable widget when updating the scrolled window adjustments in a given orientation.</doc> <member name="minimum" value="0" c:identifier="GTK_SCROLL_MINIMUM" glib:nick="minimum"> <doc xml:space="preserve">Scrollable adjustments are based on the minimum size</doc> </member> <member name="natural" value="1" c:identifier="GTK_SCROLL_NATURAL" glib:nick="natural"> <doc xml:space="preserve">Scrollable adjustments are based on the natural size</doc> </member> </enumeration> <class name="Scrollbar" c:symbol-prefix="scrollbar" c:type="GtkScrollbar" parent="Range" glib:type-name="GtkScrollbar" glib:get-type="gtk_scrollbar_get_type" glib:type-struct="ScrollbarClass"> <doc xml:space="preserve">The #GtkScrollbar widget is a horizontal or vertical scrollbar, depending on the value of the #GtkOrientable:orientation property. Its position and movement are controlled by the adjustment that is passed to or created by gtk_scrollbar_new(). See #GtkAdjustment for more details. The #GtkAdjustment:value field sets the position of the thumb and must be between #GtkAdjustment:lower and #GtkAdjustment:upper - #GtkAdjustment:page-size. The #GtkAdjustment:page-size represents the size of the visible scrollable area. The fields #GtkAdjustment:step-increment and #GtkAdjustment:page-increment fields are added to or subtracted from the #GtkAdjustment:value when the user asks to move by a step (using e.g. the cursor arrow keys or, if present, the stepper buttons) or by a page (using e.g. the Page Down/Up keys). # CSS nodes |[<!-- language="plain" --> scrollbar[.fine-tune] â°ââ contents âââ [button.up] âââ [button.down] âââ trough â â°ââ slider âââ [button.up] â°ââ [button.down] ]| GtkScrollbar has a main CSS node with name scrollbar and a subnode for its contents, with subnodes named trough and slider. The main node gets the style class .fine-tune added when the scrollbar is in 'fine-tuning' mode. If steppers are enabled, they are represented by up to four additional subnodes with name button. These get the style classes .up and .down to indicate in which direction they are moving. Other style classes that may be added to scrollbars inside #GtkScrolledWindow include the positional classes (.left, .right, .top, .bottom) and style classes related to overlay scrolling (.overlay-indicator, .dragging, .hovering).</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_scrollbar_new" version="3.0"> <doc xml:space="preserve">Creates a new scrollbar with the given orientation.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkScrollbar.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the scrollbarâs orientation.</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkAdjustment to use, or %NULL to create a new adjustment.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <field name="range"> <type name="Range" c:type="GtkRange"/> </field> </class> <record name="ScrollbarClass" c:type="GtkScrollbarClass" glib:is-gtype-struct-for="Scrollbar"> <field name="parent_class"> <type name="RangeClass" c:type="GtkRangeClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="ScrolledWindow" c:symbol-prefix="scrolled_window" c:type="GtkScrolledWindow" parent="Bin" glib:type-name="GtkScrolledWindow" glib:get-type="gtk_scrolled_window_get_type" glib:type-struct="ScrolledWindowClass"> <doc xml:space="preserve">GtkScrolledWindow is a container that accepts a single child widget, makes that child scrollable using either internally added scrollbars or externally associated adjustments, and optionally draws a frame around the child. Widgets with native scrolling support, i.e. those whose classes implement the #GtkScrollable interface, are added directly. For other types of widget, the class #GtkViewport acts as an adaptor, giving scrollability to other widgets. GtkScrolledWindowâs implementation of gtk_container_add() intelligently accounts for whether or not the added child is a #GtkScrollable. If it isnât, #GtkScrolledWindow wraps the child in a #GtkViewport and adds that for you. Therefore, you can just add any child widget and not worry about the details. If gtk_container_add() has added a #GtkViewport for you, you can remove both your added child widget from the #GtkViewport, and the #GtkViewport from the GtkScrolledWindow, like this: |[<!-- language="C" --> GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL); GtkWidget *child_widget = gtk_button_new (); // GtkButton is not a GtkScrollable, so GtkScrolledWindow will automatically // add a GtkViewport. gtk_container_add (GTK_CONTAINER (scrolled_window), child_widget); // Either of these will result in child_widget being unparented: gtk_container_remove (GTK_CONTAINER (scrolled_window), child_widget); // or gtk_container_remove (GTK_CONTAINER (scrolled_window), gtk_bin_get_child (GTK_BIN (scrolled_window))); ]| Unless #GtkScrolledWindow:policy is GTK_POLICY_NEVER or GTK_POLICY_EXTERNAL, GtkScrolledWindow adds internal #GtkScrollbar widgets around its child. The scroll position of the child, and if applicable the scrollbars, is controlled by the #GtkScrolledWindow:hadjustment and #GtkScrolledWindow:vadjustment that are associated with the GtkScrolledWindow. See the docs on #GtkScrollbar for the details, but note that the âstep_incrementâ and âpage_incrementâ fields are only effective if the policy causes scrollbars to be present. If a GtkScrolledWindow doesnât behave quite as you would like, or doesnât have exactly the right layout, itâs very possible to set up your own scrolling with #GtkScrollbar and for example a #GtkGrid. # Touch support GtkScrolledWindow has built-in support for touch devices. When a touchscreen is used, swiping will move the scrolled window, and will expose 'kinetic' behavior. This can be turned off with the #GtkScrolledWindow:kinetic-scrolling property if it is undesired. GtkScrolledWindow also displays visual 'overshoot' indication when the content is pulled beyond the end, and this situation can be captured with the #GtkScrolledWindow::edge-overshot signal. If no mouse device is present, the scrollbars will overlayed as narrow, auto-hiding indicators over the content. If traditional scrollbars are desired although no mouse is present, this behaviour can be turned off with the #GtkScrolledWindow:overlay-scrolling property. # CSS nodes GtkScrolledWindow has a main CSS node with name scrolledwindow. It uses subnodes with names overshoot and undershoot to draw the overflow and underflow indications. These nodes get the .left, .right, .top or .bottom style class added depending on where the indication is drawn. GtkScrolledWindow also sets the positional style classes (.left, .right, .top, .bottom) and style classes related to overlay scrolling (.overlay-indicator, .dragging, .hovering) on its scrollbars. If both scrollbars are visible, the area where they meet is drawn with a subnode named junction.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_scrolled_window_new"> <doc xml:space="preserve">Creates a new scrolled window. The two arguments are the scrolled windowâs adjustments; these will be shared with the scrollbars and the child widget to keep the bars in sync with the child. Usually you want to pass %NULL for the adjustments, which will cause the scrolled window to create them for you.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new scrolled window</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="hadjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">horizontal adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> <parameter name="vadjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">vertical adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <virtual-method name="move_focus_out"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="scroll_child"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> <parameter name="horizontal" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <method name="add_with_viewport" c:identifier="gtk_scrolled_window_add_with_viewport" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Used to add children without native scrolling capabilities. This is simply a convenience function; it is equivalent to adding the unscrollable child to a viewport, then adding the viewport to the scrolled window. If a child has native scrolling, use gtk_container_add() instead of this function. The viewport scrolls the child by moving its #GdkWindow, and takes the size of the child to be the size of its toplevel #GdkWindow. This will be very wrong for most widgets that support native scrolling; for example, if you add a widget such as #GtkTreeView with a viewport, the whole widget will scroll, including the column headings. Thus, widgets with native scrolling support should not be used with the #GtkViewport proxy. A widget supports scrolling natively if it implements the #GtkScrollable interface.</doc> <doc-deprecated xml:space="preserve">gtk_container_add() will automatically add a #GtkViewport if the child doesnât implement #GtkScrollable.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the widget you want to scroll</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_capture_button_press" c:identifier="gtk_scrolled_window_get_capture_button_press" version="3.4"> <doc xml:space="preserve">Return whether button presses are captured during kinetic scrolling. See gtk_scrolled_window_set_capture_button_press().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if button presses are captured during kinetic scrolling</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_hadjustment" c:identifier="gtk_scrolled_window_get_hadjustment"> <doc xml:space="preserve">Returns the horizontal scrollbarâs adjustment, used to connect the horizontal scrollbar to the child widgetâs horizontal scroll functionality.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the horizontal #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_hscrollbar" c:identifier="gtk_scrolled_window_get_hscrollbar" version="2.8"> <doc xml:space="preserve">Returns the horizontal scrollbar of @scrolled_window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the horizontal scrollbar of the scrolled window.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_kinetic_scrolling" c:identifier="gtk_scrolled_window_get_kinetic_scrolling" version="3.4"> <doc xml:space="preserve">Returns the specified kinetic scrolling behavior.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the scrolling behavior flags.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_max_content_height" c:identifier="gtk_scrolled_window_get_max_content_height" version="3.22"> <doc xml:space="preserve">Returns the maximum content height set.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the maximum content height, or -1</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_max_content_width" c:identifier="gtk_scrolled_window_get_max_content_width" version="3.22"> <doc xml:space="preserve">Returns the maximum content width set.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the maximum content width, or -1</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_min_content_height" c:identifier="gtk_scrolled_window_get_min_content_height" version="3.0"> <doc xml:space="preserve">Gets the minimal content height of @scrolled_window, or -1 if not set.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the minimal content height</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_min_content_width" c:identifier="gtk_scrolled_window_get_min_content_width" version="3.0"> <doc xml:space="preserve">Gets the minimum content width of @scrolled_window, or -1 if not set.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the minimum content width</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_overlay_scrolling" c:identifier="gtk_scrolled_window_get_overlay_scrolling" version="3.16"> <doc xml:space="preserve">Returns whether overlay scrolling is enabled for this scrolled window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if overlay scrolling is enabled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_placement" c:identifier="gtk_scrolled_window_get_placement"> <doc xml:space="preserve">Gets the placement of the contents with respect to the scrollbars for the scrolled window. See gtk_scrolled_window_set_placement().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current placement value. See also gtk_scrolled_window_set_placement() and gtk_scrolled_window_unset_placement().</doc> <type name="CornerType" c:type="GtkCornerType"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_policy" c:identifier="gtk_scrolled_window_get_policy"> <doc xml:space="preserve">Retrieves the current policy values for the horizontal and vertical scrollbars. See gtk_scrolled_window_set_policy().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="hscrollbar_policy" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the policy for the horizontal scrollbar, or %NULL</doc> <type name="PolicyType" c:type="GtkPolicyType*"/> </parameter> <parameter name="vscrollbar_policy" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the policy for the vertical scrollbar, or %NULL</doc> <type name="PolicyType" c:type="GtkPolicyType*"/> </parameter> </parameters> </method> <method name="get_propagate_natural_height" c:identifier="gtk_scrolled_window_get_propagate_natural_height" version="3.22"> <doc xml:space="preserve">Reports whether the natural height of the child will be calculated and propagated through the scrolled windows requested natural height.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether natural height propagation is enabled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_propagate_natural_width" c:identifier="gtk_scrolled_window_get_propagate_natural_width" version="3.22"> <doc xml:space="preserve">Reports whether the natural width of the child will be calculated and propagated through the scrolled windows requested natural width.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether natural width propagation is enabled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_shadow_type" c:identifier="gtk_scrolled_window_get_shadow_type"> <doc xml:space="preserve">Gets the shadow type of the scrolled window. See gtk_scrolled_window_set_shadow_type().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current shadow type</doc> <type name="ShadowType" c:type="GtkShadowType"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_vadjustment" c:identifier="gtk_scrolled_window_get_vadjustment"> <doc xml:space="preserve">Returns the vertical scrollbarâs adjustment, used to connect the vertical scrollbar to the child widgetâs vertical scroll functionality.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="get_vscrollbar" c:identifier="gtk_scrolled_window_get_vscrollbar" version="2.8"> <doc xml:space="preserve">Returns the vertical scrollbar of @scrolled_window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical scrollbar of the scrolled window.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <method name="set_capture_button_press" c:identifier="gtk_scrolled_window_set_capture_button_press" version="3.4"> <doc xml:space="preserve">Changes the behaviour of @scrolled_window with regard to the initial event that possibly starts kinetic scrolling. When @capture_button_press is set to %TRUE, the event is captured by the scrolled window, and then later replayed if it is meant to go to the child widget. This should be enabled if any child widgets perform non-reversible actions on #GtkWidget::button-press-event. If they don't, and handle additionally handle #GtkWidget::grab-broken-event, it might be better to set @capture_button_press to %FALSE. This setting only has an effect if kinetic scrolling is enabled.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="capture_button_press" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to capture button presses</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_hadjustment" c:identifier="gtk_scrolled_window_set_hadjustment"> <doc xml:space="preserve">Sets the #GtkAdjustment for the horizontal scrollbar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="hadjustment" transfer-ownership="none"> <doc xml:space="preserve">horizontal scroll adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_kinetic_scrolling" c:identifier="gtk_scrolled_window_set_kinetic_scrolling" version="3.4"> <doc xml:space="preserve">Turns kinetic scrolling on or off. Kinetic scrolling only applies to devices with source %GDK_SOURCE_TOUCHSCREEN.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="kinetic_scrolling" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to enable kinetic scrolling</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_max_content_height" c:identifier="gtk_scrolled_window_set_max_content_height" version="3.22"> <doc xml:space="preserve">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 #GtkScrolledWindow:min-content-height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the maximum content height</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_max_content_width" c:identifier="gtk_scrolled_window_set_max_content_width" version="3.22"> <doc xml:space="preserve">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 #GtkScrolledWindow:min-content-width.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the maximum content width</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_min_content_height" c:identifier="gtk_scrolled_window_set_min_content_height" version="3.0"> <doc xml:space="preserve">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 #GtkScrolledWindow:max-content-height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the minimal content height</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_min_content_width" c:identifier="gtk_scrolled_window_set_min_content_width" version="3.0"> <doc xml:space="preserve">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 #GtkScrolledWindow:max-content-width.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the minimal content width</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_overlay_scrolling" c:identifier="gtk_scrolled_window_set_overlay_scrolling" version="3.16"> <doc xml:space="preserve">Enables or disables overlay scrolling for this scrolled window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="overlay_scrolling" transfer-ownership="none"> <doc xml:space="preserve">whether to enable overlay scrolling</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_placement" c:identifier="gtk_scrolled_window_set_placement"> <doc xml:space="preserve">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 #GtkCornerType are %GTK_CORNER_TOP_RIGHT, %GTK_CORNER_BOTTOM_LEFT, and %GTK_CORNER_BOTTOM_RIGHT. See also gtk_scrolled_window_get_placement() and gtk_scrolled_window_unset_placement().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="window_placement" transfer-ownership="none"> <doc xml:space="preserve">position of the child window</doc> <type name="CornerType" c:type="GtkCornerType"/> </parameter> </parameters> </method> <method name="set_policy" c:identifier="gtk_scrolled_window_set_policy"> <doc xml:space="preserve">Sets the scrollbar policy for the horizontal and vertical scrollbars. The policy determines when the scrollbar should appear; it is a value from the #GtkPolicyType 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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="hscrollbar_policy" transfer-ownership="none"> <doc xml:space="preserve">policy for horizontal bar</doc> <type name="PolicyType" c:type="GtkPolicyType"/> </parameter> <parameter name="vscrollbar_policy" transfer-ownership="none"> <doc xml:space="preserve">policy for vertical bar</doc> <type name="PolicyType" c:type="GtkPolicyType"/> </parameter> </parameters> </method> <method name="set_propagate_natural_height" c:identifier="gtk_scrolled_window_set_propagate_natural_height" version="3.22"> <doc xml:space="preserve">Sets whether the natural height of the child should be calculated and propagated through the scrolled windows requested natural height.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="propagate" transfer-ownership="none"> <doc xml:space="preserve">whether to propagate natural height</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_propagate_natural_width" c:identifier="gtk_scrolled_window_set_propagate_natural_width" version="3.22"> <doc xml:space="preserve">Sets whether the natural width of the child should be calculated and propagated through the scrolled windows requested natural width.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="propagate" transfer-ownership="none"> <doc xml:space="preserve">whether to propagate natural width</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_shadow_type" c:identifier="gtk_scrolled_window_set_shadow_type"> <doc xml:space="preserve">Changes the type of shadow drawn around the contents of @scrolled_window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">kind of shadow to draw around scrolled window contents</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> </parameters> </method> <method name="set_vadjustment" c:identifier="gtk_scrolled_window_set_vadjustment"> <doc xml:space="preserve">Sets the #GtkAdjustment for the vertical scrollbar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> <parameter name="vadjustment" transfer-ownership="none"> <doc xml:space="preserve">vertical scroll adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="unset_placement" c:identifier="gtk_scrolled_window_unset_placement" version="2.10"> <doc xml:space="preserve">Unsets the placement of the contents with respect to the scrollbars for the scrolled window. If no window placement is set for a scrolled window, it defaults to %GTK_CORNER_TOP_LEFT. See also gtk_scrolled_window_set_placement() and gtk_scrolled_window_get_placement().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="scrolled_window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrolledWindow</doc> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </instance-parameter> </parameters> </method> <property name="hadjustment" writable="1" construct="1" transfer-ownership="none"> <type name="Adjustment"/> </property> <property name="hscrollbar-policy" writable="1" transfer-ownership="none"> <type name="PolicyType"/> </property> <property name="kinetic-scrolling" version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether kinetic scrolling is enabled or not. Kinetic scrolling only applies to devices with source %GDK_SOURCE_TOUCHSCREEN.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="max-content-height" version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The maximum content height of @scrolled_window, or -1 if not set.</doc> <type name="gint" c:type="gint"/> </property> <property name="max-content-width" version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The maximum content width of @scrolled_window, or -1 if not set.</doc> <type name="gint" c:type="gint"/> </property> <property name="min-content-height" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The minimum content height of @scrolled_window, or -1 if not set.</doc> <type name="gint" c:type="gint"/> </property> <property name="min-content-width" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The minimum content width of @scrolled_window, or -1 if not set.</doc> <type name="gint" c:type="gint"/> </property> <property name="overlay-scrolling" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 overlayed on top of the content, as narrow indicators.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="propagate-natural-height" version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the natural height of the child should be calculated and propagated through the scrolled windows 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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="propagate-natural-width" version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the natural width of the child should be calculated and propagated through the scrolled windows 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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="shadow-type" writable="1" transfer-ownership="none"> <type name="ShadowType"/> </property> <property name="vadjustment" writable="1" construct="1" transfer-ownership="none"> <type name="Adjustment"/> </property> <property name="vscrollbar-policy" writable="1" transfer-ownership="none"> <type name="PolicyType"/> </property> <property name="window-placement" writable="1" transfer-ownership="none"> <type name="CornerType"/> </property> <property name="window-placement-set" version="2.10" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether "window-placement" should be used to determine the location of the contents with respect to the scrollbars.</doc> <doc-deprecated xml:space="preserve">This value is ignored and #GtkScrolledWindow:window-placement value is always honored.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <field name="container"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv"> <type name="ScrolledWindowPrivate" c:type="GtkScrolledWindowPrivate*"/> </field> <glib:signal name="edge-overshot" when="last" version="3.16"> <doc xml:space="preserve">The ::edge-overshot signal is emitted whenever user initiated scrolling makes the scrolledwindow firmly surpass (ie. with some edge resistance) the lower or upper limits defined by the adjustment in that orientation. A similar behavior without edge resistance is provided by the #GtkScrolledWindow::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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">edge side that was hit</doc> <type name="PositionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="edge-reached" when="last" version="3.16"> <doc xml:space="preserve">The ::edge-reached signal is emitted whenever user-initiated scrolling makes the scrolledwindow exactly reaches the lower or upper limits defined by the adjustment in that orientation. A similar behavior with edge resistance is provided by the #GtkScrolledWindow::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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">edge side that was reached</doc> <type name="PositionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-focus-out" when="last" action="1"> <doc xml:space="preserve">The ::move-focus-out signal is a [keybinding signal][GtkBindingSignal] which gets emitted when focus is moved away from the scrolled window by a keybinding. The #GtkWidget::move-focus signal is emitted with @direction_type on this scrolled windows toplevel parent in the container hierarchy. The default bindings for this signal are `Tab + Ctrl` and `Tab + Ctrl + Shift`.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="direction_type" transfer-ownership="none"> <doc xml:space="preserve">either %GTK_DIR_TAB_FORWARD or %GTK_DIR_TAB_BACKWARD</doc> <type name="DirectionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="scroll-child" when="last" action="1"> <doc xml:space="preserve">The ::scroll-child signal is a [keybinding signal][GtkBindingSignal] which gets emitted when a keybinding that scrolls is pressed. The horizontal or vertical adjustment is updated which triggers a signal that the scrolled windows child may listen to and scroll itself.</doc> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="scroll" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollType describing how much to scroll</doc> <type name="ScrollType"/> </parameter> <parameter name="horizontal" transfer-ownership="none"> <doc xml:space="preserve">whether the keybinding scrolls the child horizontally or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> </class> <class name="ScrolledWindowAccessible" c:symbol-prefix="scrolled_window_accessible" c:type="GtkScrolledWindowAccessible" parent="ContainerAccessible" glib:type-name="GtkScrolledWindowAccessible" glib:get-type="gtk_scrolled_window_accessible_get_type" glib:type-struct="ScrolledWindowAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="ScrolledWindowAccessiblePrivate" c:type="GtkScrolledWindowAccessiblePrivate*"/> </field> </class> <record name="ScrolledWindowAccessibleClass" c:type="GtkScrolledWindowAccessibleClass" glib:is-gtype-struct-for="ScrolledWindowAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="ScrolledWindowAccessiblePrivate" c:type="GtkScrolledWindowAccessiblePrivate" disguised="1"> </record> <record name="ScrolledWindowClass" c:type="GtkScrolledWindowClass" glib:is-gtype-struct-for="ScrolledWindow"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="scrollbar_spacing"> <type name="gint" c:type="gint"/> </field> <field name="scroll_child"> <callback name="scroll_child"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="scrolled_window" transfer-ownership="none"> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> <parameter name="horizontal" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="move_focus_out"> <callback name="move_focus_out"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="scrolled_window" transfer-ownership="none"> <type name="ScrolledWindow" c:type="GtkScrolledWindow*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ScrolledWindowPrivate" c:type="GtkScrolledWindowPrivate" disguised="1"> </record> <class name="SearchBar" c:symbol-prefix="search_bar" c:type="GtkSearchBar" parent="Bin" glib:type-name="GtkSearchBar" glib:get-type="gtk_search_bar_get_type" glib:type-struct="SearchBarClass"> <doc xml:space="preserve">#GtkSearchBar is a container made to have a search entry (possibly with additional connex widgets, such as drop-down menus, or buttons) built-in. The search bar would appear when a search is started through typing on the keyboard, or the applicationâs search mode is toggled on. For keyboard presses to start a search, events will need to be forwarded from the top-level window that contains the search bar. See gtk_search_bar_handle_event() for example code. Common shortcuts such as Ctrl+F should be handled as an application action, or through the menu items. You will also need to tell the search bar about which entry you are using as your search entry using gtk_search_bar_connect_entry(). The following example shows you how to create a more complex search entry. # CSS nodes GtkSearchBar has a single CSS node with name searchbar. ## Creating a search bar [A simple example](https://git.gnome.org/browse/gtk+/tree/examples/search-bar.c)</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_search_bar_new" version="3.10"> <doc xml:space="preserve">Creates a #GtkSearchBar. You will need to tell it about which widget is going to be your text entry using gtk_search_bar_connect_entry().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkSearchBar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="connect_entry" c:identifier="gtk_search_bar_connect_entry" version="3.10"> <doc xml:space="preserve">Connects the #GtkEntry widget passed as the one to be used in this search bar. The entry should be a descendant of the search bar. This is only required if the entry isnât the direct child of the search bar (as in our main example).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSearchBar</doc> <type name="SearchBar" c:type="GtkSearchBar*"/> </instance-parameter> <parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkEntry</doc> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </method> <method name="get_search_mode" c:identifier="gtk_search_bar_get_search_mode" version="3.10"> <doc xml:space="preserve">Returns whether the search mode is on or off.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether search mode is toggled on</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSearchBar</doc> <type name="SearchBar" c:type="GtkSearchBar*"/> </instance-parameter> </parameters> </method> <method name="get_show_close_button" c:identifier="gtk_search_bar_get_show_close_button" version="3.10"> <doc xml:space="preserve">Returns whether the close button is shown.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the close button is shown</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSearchBar</doc> <type name="SearchBar" c:type="GtkSearchBar*"/> </instance-parameter> </parameters> </method> <method name="handle_event" c:identifier="gtk_search_bar_handle_event" version="3.10"> <doc xml:space="preserve">This function should be called when the top-level window which contains the search bar received a key event. If the key event is handled by the search bar, the bar will be shown, the entry populated with the entered text and %GDK_EVENT_STOP will be returned. The caller should ensure that events are not propagated further. If no entry has been connected to the search bar, using gtk_search_bar_connect_entry(), this function will return immediately with a warning. ## Showing the search bar on key presses |[<!-- language="C" --> static gboolean on_key_press_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GtkSearchBar *bar = GTK_SEARCH_BAR (user_data); return gtk_search_bar_handle_event (bar, event); } static void create_toplevel (void) { GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); GtkWindow *search_bar = gtk_search_bar_new (); // Add more widgets to the window... g_signal_connect (window, "key-press-event", G_CALLBACK (on_key_press_event), search_bar); } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%GDK_EVENT_STOP if the key press event resulted in text being entered in the search entry (and revealing the search bar if necessary), %GDK_EVENT_PROPAGATE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSearchBar</doc> <type name="SearchBar" c:type="GtkSearchBar*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent containing key press events</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </method> <method name="set_search_mode" c:identifier="gtk_search_bar_set_search_mode" version="3.10"> <doc xml:space="preserve">Switches the search mode on or off.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSearchBar</doc> <type name="SearchBar" c:type="GtkSearchBar*"/> </instance-parameter> <parameter name="search_mode" transfer-ownership="none"> <doc xml:space="preserve">the new state of the search mode</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_show_close_button" c:identifier="gtk_search_bar_set_show_close_button" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="bar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSearchBar</doc> <type name="SearchBar" c:type="GtkSearchBar*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">whether the close button will be shown or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="search-mode-enabled" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-close-button" writable="1" construct="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent" readable="0" private="1"> <type name="Bin" c:type="GtkBin"/> </field> </class> <record name="SearchBarClass" c:type="GtkSearchBarClass" glib:is-gtype-struct-for="SearchBar"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="SearchEntry" c:symbol-prefix="search_entry" c:type="GtkSearchEntry" parent="Entry" glib:type-name="GtkSearchEntry" glib:get-type="gtk_search_entry_get_type" glib:type-struct="SearchEntryClass"> <doc xml:space="preserve">#GtkSearchEntry is a subclass of #GtkEntry that has been tailored for use as a search entry. It will show an inactive symbolic âfindâ icon when the search entry is empty, and a symbolic âclearâ icon when there is text. Clicking on the âclearâ icon will empty the search entry. Note that the search/clear icon is shown using a secondary icon, and thus does not work if you are using the secondary icon position for some other purpose. To make filtering appear more reactive, it is a good idea to not react to every change in the entry text immediately, but only after a short delay. To support this, #GtkSearchEntry emits the #GtkSearchEntry::search-changed signal which can be used instead of the #GtkEditable::changed signal. The #GtkSearchEntry::previous-match, #GtkSearchEntry::next-match and #GtkSearchEntry::stop-search signals can be used to implement moving between search results and ending the search. Often, GtkSearchEntry will be fed events by means of being placed inside a #GtkSearchBar. If that is not the case, you can use gtk_search_entry_handle_event() to pass events.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="CellEditable"/> <implements name="Editable"/> <constructor name="new" c:identifier="gtk_search_entry_new" version="3.6"> <doc xml:space="preserve">Creates a #GtkSearchEntry, with a find icon when the search field is empty, and a clear icon when it isn't.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkSearchEntry</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="next_match"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="previous_match"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="search_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="stop_search"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </instance-parameter> </parameters> </virtual-method> <method name="handle_event" c:identifier="gtk_search_entry_handle_event" version="3.16"> <doc xml:space="preserve">This function should be called when the top-level window which contains the search entry received a key event. If the entry is part of a #GtkSearchBar, it is preferable to call gtk_search_bar_handle_event() instead, which will reveal the entry in addition to passing the event to this function. If the key event is handled by the search entry and starts or continues a search, %GDK_EVENT_STOP will be returned. The caller should ensure that the entry is shown in this case, and not propagate the event further.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%GDK_EVENT_STOP if the key press event resulted in a search beginning or continuing, %GDK_EVENT_PROPAGATE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="entry" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSearchEntry</doc> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a key event</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </method> <field name="parent"> <type name="Entry" c:type="GtkEntry"/> </field> <glib:signal name="next-match" when="last" action="1" version="3.16"> <doc xml:space="preserve">The ::next-match signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a move to the next match for the current search string. Applications should connect to it, to implement moving between matches. The default bindings for this signal is Ctrl-g.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="previous-match" when="last" action="1" version="3.16"> <doc xml:space="preserve">The ::previous-match signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a move to the previous match for the current search string. Applications should connect to it, to implement moving between matches. The default bindings for this signal is Ctrl-Shift-g.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="search-changed" when="last" version="3.10"> <doc xml:space="preserve">The #GtkSearchEntry::search-changed signal is emitted with a short delay of 150 milliseconds after the last change to the entry text.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="stop-search" when="last" action="1" version="3.16"> <doc xml:space="preserve">The ::stop-search signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user stops a search via keyboard input. Applications should connect to it, to implement hiding the search entry in this case. The default bindings for this signal is Escape.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="SearchEntryClass" c:type="GtkSearchEntryClass" glib:is-gtype-struct-for="SearchEntry"> <field name="parent_class"> <type name="EntryClass" c:type="GtkEntryClass"/> </field> <field name="search_changed"> <callback name="search_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </parameter> </parameters> </callback> </field> <field name="next_match"> <callback name="next_match"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </parameter> </parameters> </callback> </field> <field name="previous_match"> <callback name="previous_match"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </parameter> </parameters> </callback> </field> <field name="stop_search"> <callback name="stop_search"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="entry" transfer-ownership="none"> <type name="SearchEntry" c:type="GtkSearchEntry*"/> </parameter> </parameters> </callback> </field> </record> <record name="SelectionData" c:type="GtkSelectionData" glib:type-name="GtkSelectionData" glib:get-type="gtk_selection_data_get_type" c:symbol-prefix="selection_data"> <method name="copy" c:identifier="gtk_selection_data_copy"> <doc xml:space="preserve">Makes a copy of a #GtkSelectionData-struct and its data.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a pointer to a copy of @data.</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </return-value> <parameters> <instance-parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_selection_data_free"> <doc xml:space="preserve">Frees a #GtkSelectionData-struct returned from gtk_selection_data_copy().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_data" c:identifier="gtk_selection_data_get_data" shadowed-by="get_data_with_length" version="2.14" introspectable="0"> <doc xml:space="preserve">Retrieves the raw data of the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the raw data of the selection.</doc> <array zero-terminated="0" c:type="guchar*"> <type name="guint8"/> </array> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_data_type" c:identifier="gtk_selection_data_get_data_type" version="2.14"> <doc xml:space="preserve">Retrieves the data type of the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the data type of the selection.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_data_with_length" c:identifier="gtk_selection_data_get_data_with_length" shadows="get_data" version="3.0"> <doc xml:space="preserve">Retrieves the raw data of the selection along with its length.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the raw data of the selection</doc> <array length="0" zero-terminated="0" c:type="guchar*"> <type name="guint8" c:type="guchar"/> </array> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for length of the data segment</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_display" c:identifier="gtk_selection_data_get_display" version="2.14"> <doc xml:space="preserve">Retrieves the display of the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the display of the selection.</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_format" c:identifier="gtk_selection_data_get_format" version="2.14"> <doc xml:space="preserve">Retrieves the format of the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the format of the selection.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_length" c:identifier="gtk_selection_data_get_length" version="2.14"> <doc xml:space="preserve">Retrieves the length of the raw data of the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the length of the data of the selection.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_pixbuf" c:identifier="gtk_selection_data_get_pixbuf" version="2.6"> <doc xml:space="preserve">Gets the contents of the selection data as a #GdkPixbuf.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">if the selection data contained a recognized image type and it could be converted to a #GdkPixbuf, a newly allocated pixbuf is returned, otherwise %NULL. If the result is non-%NULL it must be freed with g_object_unref().</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_selection" c:identifier="gtk_selection_data_get_selection" version="2.16"> <doc xml:space="preserve">Retrieves the selection #GdkAtom of the selection data.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the selection #GdkAtom of the selection data.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_target" c:identifier="gtk_selection_data_get_target" version="2.14"> <doc xml:space="preserve">Retrieves the target of the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the target of the selection.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_targets" c:identifier="gtk_selection_data_get_targets"> <doc xml:space="preserve">Gets the contents of @selection_data as an array of targets. This can be used to interpret the results of getting the standard TARGETS target that is always supplied for any selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @selection_data contains a valid array of targets, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData object</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> <parameter name="targets" direction="out" caller-allocates="0" transfer-ownership="container"> <doc xml:space="preserve"> location to store an array of targets. The result stored here must be freed with g_free().</doc> <array length="1" zero-terminated="0" c:type="GdkAtom**"> <type name="Gdk.Atom" c:type="GdkAtom*"/> </array> </parameter> <parameter name="n_atoms" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store number of items in @targets.</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_text" c:identifier="gtk_selection_data_get_text"> <doc xml:space="preserve">Gets the contents of the selection data as a UTF-8 string.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">if the selection data contained a recognized text type and it could be converted to UTF-8, a newly allocated string containing the converted text, otherwise %NULL. If the result is non-%NULL it must be freed with g_free().</doc> <type name="utf8" c:type="guchar*"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="get_uris" c:identifier="gtk_selection_data_get_uris" version="2.6"> <doc xml:space="preserve">Gets the contents of the selection data as array of URIs.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">if the selection data contains a list of URIs, a newly allocated %NULL-terminated string array containing the URIs, otherwise %NULL. If the result is non-%NULL it must be freed with g_strfreev().</doc> <array c:type="gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="set" c:identifier="gtk_selection_data_set"> <doc xml:space="preserve">Stores new data into a #GtkSelectionData object. Should only be called from a selection handler callback. Zero-terminates the stored data.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkSelectionData-struct.</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the type of selection data</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="format" transfer-ownership="none"> <doc xml:space="preserve">format (number of bits in a unit)</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">pointer to the data (will be copied)</doc> <array length="3" zero-terminated="0" c:type="guchar*"> <type name="guint8" c:type="guchar"/> </array> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">length of the data</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_pixbuf" c:identifier="gtk_selection_data_set_pixbuf" version="2.6"> <doc xml:space="preserve">Sets the contents of the selection from a #GdkPixbuf The pixbuf is converted to the form determined by @selection_data->target.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the selection was successfully set, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </instance-parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">a #GdkPixbuf</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_text" c:identifier="gtk_selection_data_set_text"> <doc xml:space="preserve">Sets the contents of the selection from a UTF-8 encoded string. The string is converted to the form determined by @selection_data->target.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the selection was successfully set, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">a UTF-8 string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">the length of @str, or -1 if @str is nul-terminated.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_uris" c:identifier="gtk_selection_data_set_uris" version="2.6"> <doc xml:space="preserve">Sets the contents of the selection from a list of URIs. The string is converted to the form determined by @selection_data->target.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the selection was successfully set, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </instance-parameter> <parameter name="uris" transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated array of strings holding URIs</doc> <array c:type="gchar**"> <type name="utf8" c:type="gchar*"/> </array> </parameter> </parameters> </method> <method name="targets_include_image" c:identifier="gtk_selection_data_targets_include_image" version="2.6"> <doc xml:space="preserve">Given a #GtkSelectionData object holding a list of targets, determines if any of the targets in @targets can be used to provide a #GdkPixbuf.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @selection_data holds a list of targets, and a suitable target for images is included, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData object</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> <parameter name="writable" transfer-ownership="none"> <doc xml:space="preserve">whether to accept only targets for which GTK+ knows how to convert a pixbuf into the format</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="targets_include_rich_text" c:identifier="gtk_selection_data_targets_include_rich_text" version="2.10"> <doc xml:space="preserve">Given a #GtkSelectionData object holding a list of targets, determines if any of the targets in @targets can be used to provide rich text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @selection_data holds a list of targets, and a suitable target for rich text is included, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData object</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </method> <method name="targets_include_text" c:identifier="gtk_selection_data_targets_include_text"> <doc xml:space="preserve">Given a #GtkSelectionData object holding a list of targets, determines if any of the targets in @targets can be used to provide text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @selection_data holds a list of targets, and a suitable target for text is included, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData object</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> <method name="targets_include_uri" c:identifier="gtk_selection_data_targets_include_uri" version="2.10"> <doc xml:space="preserve">Given a #GtkSelectionData object holding a list of targets, determines if any of the targets in @targets can be used to provide a list or URIs.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @selection_data holds a list of targets, and a suitable target for URI lists is included, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData object</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </instance-parameter> </parameters> </method> </record> <enumeration name="SelectionMode" glib:type-name="GtkSelectionMode" glib:get-type="gtk_selection_mode_get_type" c:type="GtkSelectionMode"> <doc xml:space="preserve">Used to control what selections users are allowed to make.</doc> <member name="none" value="0" c:identifier="GTK_SELECTION_NONE" glib:nick="none"> <doc xml:space="preserve">No selection is possible.</doc> </member> <member name="single" value="1" c:identifier="GTK_SELECTION_SINGLE" glib:nick="single"> <doc xml:space="preserve">Zero or one element may be selected.</doc> </member> <member name="browse" value="2" c:identifier="GTK_SELECTION_BROWSE" glib:nick="browse"> <doc xml:space="preserve">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.</doc> </member> <member name="multiple" value="3" c:identifier="GTK_SELECTION_MULTIPLE" glib:nick="multiple"> <doc xml:space="preserve">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.</doc> </member> </enumeration> <enumeration name="SensitivityType" glib:type-name="GtkSensitivityType" glib:get-type="gtk_sensitivity_type_get_type" c:type="GtkSensitivityType"> <doc xml:space="preserve">Determines how GTK+ handles the sensitivity of stepper arrows at the end of range widgets.</doc> <member name="auto" value="0" c:identifier="GTK_SENSITIVITY_AUTO" glib:nick="auto"> <doc xml:space="preserve">The arrow is made insensitive if the thumb is at the end</doc> </member> <member name="on" value="1" c:identifier="GTK_SENSITIVITY_ON" glib:nick="on"> <doc xml:space="preserve">The arrow is always sensitive</doc> </member> <member name="off" value="2" c:identifier="GTK_SENSITIVITY_OFF" glib:nick="off"> <doc xml:space="preserve">The arrow is always insensitive</doc> </member> </enumeration> <class name="Separator" c:symbol-prefix="separator" c:type="GtkSeparator" parent="Widget" glib:type-name="GtkSeparator" glib:get-type="gtk_separator_get_type" glib:type-struct="SeparatorClass"> <doc xml:space="preserve">GtkSeparator is a horizontal or vertical separator widget, depending on the value of the #GtkOrientable:orientation property, used to group the widgets within a window. It displays a line with a shadow to make it appear sunken into the interface. # CSS nodes GtkSeparator has a single CSS node with name separator. The node gets one of the .horizontal or .vertical style classes.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_separator_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkSeparator with the given orientation.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkSeparator.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the separatorâs orientation.</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </constructor> <field name="widget"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv"> <type name="SeparatorPrivate" c:type="GtkSeparatorPrivate*"/> </field> </class> <record name="SeparatorClass" c:type="GtkSeparatorClass" glib:is-gtype-struct-for="Separator"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="SeparatorMenuItem" c:symbol-prefix="separator_menu_item" c:type="GtkSeparatorMenuItem" parent="MenuItem" glib:type-name="GtkSeparatorMenuItem" glib:get-type="gtk_separator_menu_item_get_type" glib:type-struct="SeparatorMenuItemClass"> <doc xml:space="preserve">The #GtkSeparatorMenuItem is a separator used to group items within a menu. It displays a horizontal line with a shadow to make it appear sunken into the interface. # CSS nodes GtkSeparatorMenuItem has a single CSS node with name separator.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_separator_menu_item_new"> <doc xml:space="preserve">Creates a new #GtkSeparatorMenuItem.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkSeparatorMenuItem.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="menu_item"> <type name="MenuItem" c:type="GtkMenuItem"/> </field> </class> <record name="SeparatorMenuItemClass" c:type="GtkSeparatorMenuItemClass" glib:is-gtype-struct-for="SeparatorMenuItem"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="MenuItemClass" c:type="GtkMenuItemClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="SeparatorPrivate" c:type="GtkSeparatorPrivate" disguised="1"> </record> <class name="SeparatorToolItem" c:symbol-prefix="separator_tool_item" c:type="GtkSeparatorToolItem" parent="ToolItem" glib:type-name="GtkSeparatorToolItem" glib:get-type="gtk_separator_tool_item_get_type" glib:type-struct="SeparatorToolItemClass"> <doc xml:space="preserve">A #GtkSeparatorToolItem is a #GtkToolItem that separates groups of other #GtkToolItems. Depending on the theme, a #GtkSeparatorToolItem will often look like a vertical line on horizontally docked toolbars. If the #GtkToolbar child property âexpandâ is %TRUE and the property #GtkSeparatorToolItem:draw is %FALSE, a #GtkSeparatorToolItem will act as a âspringâ that forces other items to the ends of the toolbar. Use gtk_separator_tool_item_new() to create a new #GtkSeparatorToolItem. # CSS nodes GtkSeparatorToolItem has a single CSS node with name separator.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_separator_tool_item_new" version="2.4"> <doc xml:space="preserve">Create a new #GtkSeparatorToolItem</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkSeparatorToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> </constructor> <method name="get_draw" c:identifier="gtk_separator_tool_item_get_draw" version="2.4"> <doc xml:space="preserve">Returns whether @item is drawn as a line, or just blank. See gtk_separator_tool_item_set_draw().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @item is drawn as a line, or just blank.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSeparatorToolItem</doc> <type name="SeparatorToolItem" c:type="GtkSeparatorToolItem*"/> </instance-parameter> </parameters> </method> <method name="set_draw" c:identifier="gtk_separator_tool_item_set_draw" version="2.4"> <doc xml:space="preserve">Whether @item is drawn as a vertical line, or just blank. Setting this to %FALSE along with gtk_tool_item_set_expand() is useful to create an item that forces following items to the end of the toolbar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSeparatorToolItem</doc> <type name="SeparatorToolItem" c:type="GtkSeparatorToolItem*"/> </instance-parameter> <parameter name="draw" transfer-ownership="none"> <doc xml:space="preserve">whether @item is drawn as a vertical line</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="draw" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="ToolItem" c:type="GtkToolItem"/> </field> <field name="priv" readable="0" private="1"> <type name="SeparatorToolItemPrivate" c:type="GtkSeparatorToolItemPrivate*"/> </field> </class> <record name="SeparatorToolItemClass" c:type="GtkSeparatorToolItemClass" glib:is-gtype-struct-for="SeparatorToolItem"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ToolItemClass" c:type="GtkToolItemClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="SeparatorToolItemPrivate" c:type="GtkSeparatorToolItemPrivate" disguised="1"> </record> <class name="Settings" c:symbol-prefix="settings" c:type="GtkSettings" parent="GObject.Object" glib:type-name="GtkSettings" glib:get-type="gtk_settings_get_type" glib:type-struct="SettingsClass"> <doc xml:space="preserve">GtkSettings provide a mechanism to share global settings between applications. On the X window system, this sharing is realized by an [XSettings](http://www.freedesktop.org/wiki/Specifications/xsettings-spec) manager that is usually part of the desktop environment, along with utilities that let the user change these settings. In the absence of an Xsettings manager, GTK+ reads default values for settings from `settings.ini` files in `/etc/gtk-3.0`, `$XDG_CONFIG_DIRS/gtk-3.0` and `$XDG_CONFIG_HOME/gtk-3.0`. These files must be valid key files (see #GKeyFile), and have a section called Settings. Themes can also provide default values for settings by installing a `settings.ini` file next to their `gtk.css` file. Applications can override system-wide settings by setting the property of the GtkSettings object with g_object_set(). This should be restricted to special cases though; GtkSettings are not meant as an application configuration facility. When doing so, you need to be aware that settings that are specific to individual widgets may not be available before the widget type has been realized at least once. The following example demonstrates a way to do this: |[<!-- language="C" --> gtk_init (&argc, &argv); // make sure the type is realized g_type_class_unref (g_type_class_ref (GTK_TYPE_IMAGE_MENU_ITEM)); g_object_set (gtk_settings_get_default (), "gtk-enable-animations", FALSE, NULL); ]| There is one GtkSettings instance per screen. It can be obtained with gtk_settings_get_for_screen(), but in many cases, it is more convenient to use gtk_widget_get_settings(). gtk_settings_get_default() returns the GtkSettings instance for the default screen.</doc> <implements name="StyleProvider"/> <function name="get_default" c:identifier="gtk_settings_get_default"> <doc xml:space="preserve">Gets the #GtkSettings object for the default GDK screen, creating it if necessary. See gtk_settings_get_for_screen().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkSettings object. If there is no default screen, then returns %NULL.</doc> <type name="Settings" c:type="GtkSettings*"/> </return-value> </function> <function name="get_for_screen" c:identifier="gtk_settings_get_for_screen" version="2.2"> <doc xml:space="preserve">Gets the #GtkSettings object for @screen, creating it if necessary.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkSettings object.</doc> <type name="Settings" c:type="GtkSettings*"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </function> <function name="install_property" c:identifier="gtk_settings_install_property" deprecated="1" deprecated-version="3.16"> <doc-deprecated xml:space="preserve">This function is not useful outside GTK+.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </function> <function name="install_property_parser" c:identifier="gtk_settings_install_property_parser" deprecated="1" deprecated-version="3.16"> <doc-deprecated xml:space="preserve">This function is not useful outside GTK+.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> <parameter name="parser" transfer-ownership="none" scope="call"> <type name="RcPropertyParser" c:type="GtkRcPropertyParser"/> </parameter> </parameters> </function> <method name="reset_property" c:identifier="gtk_settings_reset_property" version="3.20"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSettings object</doc> <type name="Settings" c:type="GtkSettings*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the setting to reset</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_double_property" c:identifier="gtk_settings_set_double_property" deprecated="1" deprecated-version="3.16"> <doc-deprecated xml:space="preserve">Use g_object_set() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <type name="Settings" c:type="GtkSettings*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="v_double" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="origin" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_long_property" c:identifier="gtk_settings_set_long_property" deprecated="1" deprecated-version="3.16"> <doc-deprecated xml:space="preserve">Use g_object_set() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <type name="Settings" c:type="GtkSettings*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="v_long" transfer-ownership="none"> <type name="glong" c:type="glong"/> </parameter> <parameter name="origin" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_property_value" c:identifier="gtk_settings_set_property_value" deprecated="1" deprecated-version="3.16"> <doc-deprecated xml:space="preserve">Use g_object_set() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <type name="Settings" c:type="GtkSettings*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="svalue" transfer-ownership="none"> <type name="SettingsValue" c:type="const GtkSettingsValue*"/> </parameter> </parameters> </method> <method name="set_string_property" c:identifier="gtk_settings_set_string_property" deprecated="1" deprecated-version="3.16"> <doc-deprecated xml:space="preserve">Use g_object_set() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="settings" transfer-ownership="none"> <type name="Settings" c:type="GtkSettings*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="v_string" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="origin" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="color-hash" version="2.10" deprecated="1" deprecated-version="3.8" transfer-ownership="container"> <doc xml:space="preserve">Holds a hash table representation of the #GtkSettings:gtk-color-scheme setting, mapping color names to #GdkColors.</doc> <doc-deprecated xml:space="preserve">Will always return an empty hash table.</doc-deprecated> <type name="GLib.HashTable"> <type name="utf8"/> <type name="Gdk.Color"/> </type> </property> <property name="gtk-alternative-button-order" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-alternative-sort-arrows" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-application-prefer-dark-theme" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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...).</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-auto-mnemonics" version="2.20" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether mnemonics should be automatically shown and hidden when the user presses the mnemonic activator.</doc> <doc-deprecated xml:space="preserve">This setting is ignored</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-button-images" version="2.4" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether images should be shown on buttons</doc> <doc-deprecated xml:space="preserve">This setting is deprecated. Application developers control whether a button should show an icon or not, on a per-button basis. If a #GtkButton should show an icon, use the #GtkButton:always-show-image property of #GtkButton, and pack a #GtkImage inside the #GtkButton</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-can-change-accels" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether menu accelerators can be changed by pressing a key over the menu item.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-color-palette" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Palette to use in the deprecated color selector.</doc> <doc-deprecated xml:space="preserve">Only used by the deprecated color selector widget.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-color-scheme" version="2.10" deprecated="1" deprecated-version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A palette of named colors for use in themes. The format of the string is |[ name1: color1 name2: color2 ... ]| Color names must be acceptable as identifiers in the [gtkrc][gtk3-Resource-Files] syntax, and color specifications must be in the format accepted by gdk_color_parse(). Note that due to the way the color tables from different sources are merged, color specifications will be converted to hexadecimal form when getting this property. Starting with GTK+ 2.12, the entries can alternatively be separated by ';' instead of newlines: |[ name1: color1; name2: color2; ... ]|</doc> <doc-deprecated xml:space="preserve">Color scheme support was dropped and is no longer supported. You can still set this property, but it will be ignored.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-cursor-blink" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the cursor should blink. Also see the #GtkSettings:gtk-cursor-blink-timeout setting, which allows more flexible control over cursor blinking.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-cursor-blink-time" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="gtk-cursor-blink-timeout" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkSettings:gtk-cursor-blink to %FALSE.</doc> <type name="gint" c:type="gint"/> </property> <property name="gtk-cursor-theme-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-cursor-theme-size" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="gtk-decoration-layout" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">This setting determines which buttons should be put in the titlebar of client-side decorated windows, and whether they should be placed at the left of 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, "menu:minimize,maximize,close" 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 #GtkHeaderBar:decoration-layout property.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-dialogs-use-header" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-dnd-drag-threshold" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="gtk-double-click-distance" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="gtk-double-click-time" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="gtk-enable-accels" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether menu items should have visible accelerators which can be activated.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-enable-animations" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-enable-event-sounds" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-enable-input-feedback-sounds" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-enable-mnemonics" version="2.12" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether labels and menu items should have visible mnemonics which can be activated.</doc> <doc-deprecated xml:space="preserve">This setting can still be used for application overrides, but will be ignored in the future</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-enable-primary-paste" version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether a middle click on a mouse should paste the 'PRIMARY' clipboard content at the cursor location.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-enable-tooltips" version="2.14" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether tooltips should be shown on widgets.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-entry-password-hint-timeout" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="guint" c:type="guint"/> </property> <property name="gtk-entry-select-on-focus" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-error-bell" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">When %TRUE, keyboard navigation and other input-related errors will cause a beep. Since the error bell is implemented using gdk_window_beep(), the windowing system may offer ways to configure the error bell in many ways, such as flashing the window or similar visual effects.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-fallback-icon-theme" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Name of a icon theme to fall back to.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-file-chooser-backend" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Name of the GtkFileChooser backend to use by default.</doc> <doc-deprecated xml:space="preserve">This setting is ignored. #GtkFileChooser uses GIO by default.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-font-name" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The default font to use. GTK+ uses the family name and size from this string.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-fontconfig-timestamp" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="gtk-icon-sizes" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A list of icon sizes. The list is separated by colons, and item has the form: `size-name` = `width` , `height` E.g. "gtk-menu=16,16:gtk-button=20,20:gtk-dialog=48,48". GTK+ itself use the following named icon sizes: gtk-menu, gtk-button, gtk-small-toolbar, gtk-large-toolbar, gtk-dnd, gtk-dialog. Applications can register their own named icon sizes with gtk_icon_size_register().</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-icon-theme-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-im-module" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkIMContext.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-im-preedit-style" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">How to draw the input method preedit string.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="IMPreeditStyle"/> </property> <property name="gtk-im-status-style" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">How to draw the input method statusbar.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="IMStatusStyle"/> </property> <property name="gtk-key-theme-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-keynav-cursor-only" version="2.12" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">When %TRUE, keyboard navigation should be able to reach all widgets by using the cursor keys only. Tab, Shift etc. keys can't be expected to be present on the used input device.</doc> <doc-deprecated xml:space="preserve">Generally, the behavior for touchscreen input should be performed dynamically based on gdk_event_get_source_device().</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-keynav-use-caret" version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-keynav-wrap-around" version="2.12" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">When %TRUE, some widgets will wrap around when doing keyboard navigation, such as menus, menubars and notebooks.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-label-select-on-focus" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-long-press-time" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The time for a button or touch press to be considered a "long press".</doc> <type name="guint" c:type="guint"/> </property> <property name="gtk-menu-bar-accel" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Keybinding to activate the menu bar.</doc> <doc-deprecated xml:space="preserve">This setting can still be used for application overrides, but will be ignored in the future</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-menu-bar-popup-delay" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Delay before the submenus of a menu bar appear.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-menu-images" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether images should be shown in menu items</doc> <doc-deprecated xml:space="preserve">This setting is deprecated. Application developers control whether or not a #GtkMenuItem should have an icon or not, on a per widget basis. Either use a #GtkMenuItem with a #GtkBox containing a #GtkImage and a #GtkAccelLabel, or describe your menus using a #GMenu XML description</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-menu-popdown-delay" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The time before hiding a submenu when the pointer is moving towards the submenu.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-menu-popup-delay" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Minimum time the pointer must stay over a menu item before the submenu appear.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-modules" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-primary-button-warps-slider" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 (since GTK+ 3.22.25) clicking the middle mouse button.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-print-backends" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A comma-separated list of print backends to use in the print dialog. Available print backends depend on the GTK+ installation, and may include "file", "cups", "lpr" or "papi".</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-print-preview-command" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 gtk_print_settings_to_file(). The preview application is responsible for removing the pdf file and the print settings file when it is done.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-recent-files-enabled" version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether GTK+ should keep track of items inside the recently used resources list. If set to %FALSE, the list will always be empty.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-recent-files-limit" version="2.12" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The number of recently used files that should be displayed by default by #GtkRecentChooser implementations and by the #GtkFileChooser. A value of -1 means every recently used file stored.</doc> <doc-deprecated xml:space="preserve">This setting is ignored</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-recent-files-max-age" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="gtk-scrolled-window-placement" version="2.10" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Where the contents of scrolled windows are located with respect to the scrollbars, if not overridden by the scrolled window's own placement.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="CornerType"/> </property> <property name="gtk-shell-shows-app-menu" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-shell-shows-desktop" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-shell-shows-menubar" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-show-input-method-menu" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-show-unicode-menu" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-sound-theme-name" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-split-cursor" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-theme-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-timeout-expand" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-timeout-initial" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-timeout-repeat" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-titlebar-double-click" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">This setting 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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-titlebar-middle-click" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">This setting 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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-titlebar-right-click" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">This setting 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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-toolbar-icon-size" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The size of icons in default toolbars.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="IconSize"/> </property> <property name="gtk-toolbar-style" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The size of icons in default toolbars.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="ToolbarStyle"/> </property> <property name="gtk-tooltip-browse-mode-timeout" version="2.12" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Amount of time, in milliseconds, after which the browse mode will be disabled. See #GtkSettings:gtk-tooltip-browse-timeout for more information about browse mode.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-tooltip-browse-timeout" version="2.12" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Controls the time after which tooltips will appear when browse mode is enabled, in milliseconds. Browse mode is enabled when the mouse pointer moves off an object where a tooltip was currently being displayed. If the mouse pointer hits another object before the browse mode timeout expires (see #GtkSettings:gtk-tooltip-browse-mode-timeout), it will take the amount of milliseconds specified by this setting to popup the tooltip for the new object.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-tooltip-timeout" version="2.12" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Time, in milliseconds, after which a tooltip could appear if the cursor is hovering on top of a widget.</doc> <doc-deprecated xml:space="preserve">This setting is ignored.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="gtk-touchscreen-mode" version="2.10" deprecated="1" deprecated-version="3.4." writable="1" transfer-ownership="none"> <doc xml:space="preserve">When %TRUE, there are no motion notify events delivered on this screen, and widgets can't use the pointer hovering them for any essential functionality.</doc> <doc-deprecated xml:space="preserve">Generally, the behavior for touchscreen input should be performed dynamically based on gdk_event_get_source_device().</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="gtk-visible-focus" version="3.2" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether 'focus rectangles' should be always visible, never visible, or hidden until the user starts to use the keyboard.</doc> <doc-deprecated xml:space="preserve">This setting is ignored</doc-deprecated> <type name="PolicyType"/> </property> <property name="gtk-xft-antialias" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="gtk-xft-dpi" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="gtk-xft-hinting" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="gtk-xft-hintstyle" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="gtk-xft-rgba" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="SettingsPrivate" c:type="GtkSettingsPrivate*"/> </field> </class> <record name="SettingsClass" c:type="GtkSettingsClass" glib:is-gtype-struct-for="Settings"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="SettingsPrivate" c:type="GtkSettingsPrivate" disguised="1"> </record> <record name="SettingsValue" c:type="GtkSettingsValue"> <field name="origin" writable="1"> <doc xml:space="preserve">Origin should be something like âfilename:linenumberâ for rc files, or e.g. âXPropertyâ for other sources.</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="value" writable="1"> <doc xml:space="preserve">Valid types are LONG, DOUBLE and STRING corresponding to the token parsed, or a GSTRING holding an unparsed statement</doc> <type name="GObject.Value" c:type="GValue"/> </field> </record> <enumeration name="ShadowType" glib:type-name="GtkShadowType" glib:get-type="gtk_shadow_type_get_type" c:type="GtkShadowType"> <doc xml:space="preserve">Used to change the appearance of an outline typically provided by a #GtkFrame. Note that many themes do not differentiate the appearance of the various shadow types: Either their is no visible shadow (@GTK_SHADOW_NONE), or there is (any other value).</doc> <member name="none" value="0" c:identifier="GTK_SHADOW_NONE" glib:nick="none"> <doc xml:space="preserve">No outline.</doc> </member> <member name="in" value="1" c:identifier="GTK_SHADOW_IN" glib:nick="in"> <doc xml:space="preserve">The outline is bevelled inwards.</doc> </member> <member name="out" value="2" c:identifier="GTK_SHADOW_OUT" glib:nick="out"> <doc xml:space="preserve">The outline is bevelled outwards like a button.</doc> </member> <member name="etched_in" value="3" c:identifier="GTK_SHADOW_ETCHED_IN" glib:nick="etched-in"> <doc xml:space="preserve">The outline has a sunken 3d appearance.</doc> </member> <member name="etched_out" value="4" c:identifier="GTK_SHADOW_ETCHED_OUT" glib:nick="etched-out"> <doc xml:space="preserve">The outline has a raised 3d appearance.</doc> </member> </enumeration> <class name="ShortcutLabel" c:symbol-prefix="shortcut_label" c:type="GtkShortcutLabel" parent="Box" glib:type-name="GtkShortcutLabel" glib:get-type="gtk_shortcut_label_get_type" glib:type-struct="ShortcutLabelClass"> <doc xml:space="preserve">#GtkShortcutLabel is a widget that represents a single keyboard shortcut or gesture in the user interface.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_shortcut_label_new" version="3.22"> <doc xml:space="preserve">Creates a new #GtkShortcutLabel with @accelerator set.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated #GtkShortcutLabel</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="accelerator" transfer-ownership="none"> <doc xml:space="preserve">the initial accelerator</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_accelerator" c:identifier="gtk_shortcut_label_get_accelerator" version="3.22"> <doc xml:space="preserve">Retrieves the current accelerator of @self.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the current accelerator.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkShortcutLabel</doc> <type name="ShortcutLabel" c:type="GtkShortcutLabel*"/> </instance-parameter> </parameters> </method> <method name="get_disabled_text" c:identifier="gtk_shortcut_label_get_disabled_text" version="3.22"> <doc xml:space="preserve">Retrieves the text that is displayed when no accelerator is set.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the current text displayed when no accelerator is set.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkShortcutLabel</doc> <type name="ShortcutLabel" c:type="GtkShortcutLabel*"/> </instance-parameter> </parameters> </method> <method name="set_accelerator" c:identifier="gtk_shortcut_label_set_accelerator" version="3.22"> <doc xml:space="preserve">Sets the accelerator to be displayed by @self.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkShortcutLabel</doc> <type name="ShortcutLabel" c:type="GtkShortcutLabel*"/> </instance-parameter> <parameter name="accelerator" transfer-ownership="none"> <doc xml:space="preserve">the new accelerator</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_disabled_text" c:identifier="gtk_shortcut_label_set_disabled_text" version="3.22"> <doc xml:space="preserve">Sets the text to be displayed by @self when no accelerator is set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <doc xml:space="preserve">a #GtkShortcutLabel</doc> <type name="ShortcutLabel" c:type="GtkShortcutLabel*"/> </instance-parameter> <parameter name="disabled_text" transfer-ownership="none"> <doc xml:space="preserve">the text to be displayed when no accelerator is set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="accelerator" version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The accelerator that @self displays. See #GtkShortcutsShortcut:accelerator for the accepted syntax.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="disabled-text" version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text that is displayed when no accelerator is set.</doc> <type name="utf8" c:type="gchar*"/> </property> </class> <record name="ShortcutLabelClass" c:type="GtkShortcutLabelClass" disguised="1" glib:is-gtype-struct-for="ShortcutLabel"> </record> <enumeration name="ShortcutType" version="3.20" glib:type-name="GtkShortcutType" glib:get-type="gtk_shortcut_type_get_type" c:type="GtkShortcutType"> <doc xml:space="preserve">GtkShortcutType specifies the kind of shortcut that is being described. More values may be added to this enumeration over time.</doc> <member name="accelerator" value="0" c:identifier="GTK_SHORTCUT_ACCELERATOR" glib:nick="accelerator"> <doc xml:space="preserve">The shortcut is a keyboard accelerator. The #GtkShortcutsShortcut:accelerator property will be used.</doc> </member> <member name="gesture_pinch" value="1" c:identifier="GTK_SHORTCUT_GESTURE_PINCH" glib:nick="gesture-pinch"> <doc xml:space="preserve">The shortcut is a pinch gesture. GTK+ provides an icon and subtitle.</doc> </member> <member name="gesture_stretch" value="2" c:identifier="GTK_SHORTCUT_GESTURE_STRETCH" glib:nick="gesture-stretch"> <doc xml:space="preserve">The shortcut is a stretch gesture. GTK+ provides an icon and subtitle.</doc> </member> <member name="gesture_rotate_clockwise" value="3" c:identifier="GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE" glib:nick="gesture-rotate-clockwise"> <doc xml:space="preserve">The shortcut is a clockwise rotation gesture. GTK+ provides an icon and subtitle.</doc> </member> <member name="gesture_rotate_counterclockwise" value="4" c:identifier="GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE" glib:nick="gesture-rotate-counterclockwise"> <doc xml:space="preserve">The shortcut is a counterclockwise rotation gesture. GTK+ provides an icon and subtitle.</doc> </member> <member name="gesture_two_finger_swipe_left" value="5" c:identifier="GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT" glib:nick="gesture-two-finger-swipe-left"> <doc xml:space="preserve">The shortcut is a two-finger swipe gesture. GTK+ provides an icon and subtitle.</doc> </member> <member name="gesture_two_finger_swipe_right" value="6" c:identifier="GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT" glib:nick="gesture-two-finger-swipe-right"> <doc xml:space="preserve">The shortcut is a two-finger swipe gesture. GTK+ provides an icon and subtitle.</doc> </member> <member name="gesture" value="7" c:identifier="GTK_SHORTCUT_GESTURE" glib:nick="gesture"> <doc xml:space="preserve">The shortcut is a gesture. The #GtkShortcutsShortcut:icon property will be used.</doc> </member> </enumeration> <class name="ShortcutsGroup" c:symbol-prefix="shortcuts_group" c:type="GtkShortcutsGroup" parent="Box" glib:type-name="GtkShortcutsGroup" glib:get-type="gtk_shortcuts_group_get_type" glib:type-struct="ShortcutsGroupClass"> <doc xml:space="preserve">A GtkShortcutsGroup represents a group of related keyboard shortcuts or gestures. The group has a title. It may optionally be associated with a view of the application, which can be used to show only relevant shortcuts depending on the application context. This widget is only meant to be used with #GtkShortcutsWindow.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <property name="accel-size-group" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="SizeGroup"/> </property> <property name="height" transfer-ownership="none"> <doc xml:space="preserve">A rough measure for the number of lines in this group. This is used internally by GTK+, and is not useful for applications.</doc> <type name="guint" c:type="guint"/> </property> <property name="title" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The title for this group of shortcuts.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="title-size-group" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="SizeGroup"/> </property> <property name="view" writable="1" transfer-ownership="none"> <doc xml:space="preserve">An optional view that the shortcuts in this group are relevant for. The group will be hidden if the #GtkShortcutsWindow:view-name property does not match the view of this group. Set this to %NULL to make the group always visible.</doc> <type name="utf8" c:type="gchar*"/> </property> </class> <record name="ShortcutsGroupClass" c:type="GtkShortcutsGroupClass" disguised="1" glib:is-gtype-struct-for="ShortcutsGroup"> </record> <class name="ShortcutsSection" c:symbol-prefix="shortcuts_section" c:type="GtkShortcutsSection" parent="Box" glib:type-name="GtkShortcutsSection" glib:get-type="gtk_shortcuts_section_get_type" glib:type-struct="ShortcutsSectionClass"> <doc xml:space="preserve">A GtkShortcutsSection collects all the keyboard shortcuts and gestures for a major application mode. If your application needs multiple sections, you should give each section a unique #GtkShortcutsSection:section-name and a #GtkShortcutsSection:title that can be shown in the section selector of the GtkShortcutsWindow. The #GtkShortcutsSection:max-height property can be used to influence how the groups in the section are distributed over pages and columns. This widget is only meant to be used with #GtkShortcutsWindow.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <property name="max-height" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 for most cases.</doc> <type name="guint" c:type="guint"/> </property> <property name="section-name" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A unique name to identify this section among the sections added to the GtkShortcutsWindow. Setting the #GtkShortcutsWindow:section-name property to this string will make this section shown in the GtkShortcutsWindow.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="title" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="view-name" writable="1" transfer-ownership="none"> <doc xml:space="preserve">A view name to filter the groups in this section by. See #GtkShortcutsGroup:view. Applications are expected to use the #GtkShortcutsWindow:view-name property for this purpose.</doc> <type name="utf8" c:type="gchar*"/> </property> <glib:signal name="change-current-page" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> </class> <record name="ShortcutsSectionClass" c:type="GtkShortcutsSectionClass" disguised="1" glib:is-gtype-struct-for="ShortcutsSection"> </record> <class name="ShortcutsShortcut" c:symbol-prefix="shortcuts_shortcut" c:type="GtkShortcutsShortcut" parent="Box" glib:type-name="GtkShortcutsShortcut" glib:get-type="gtk_shortcuts_shortcut_get_type" glib:type-struct="ShortcutsShortcutClass"> <doc xml:space="preserve">A GtkShortcutsShortcut represents a single keyboard shortcut or gesture with a short text. This widget is only meant to be used with #GtkShortcutsWindow.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <property name="accel-size-group" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The size group for the accelerator portion of this shortcut. This is used internally by GTK+, and must not be modified by applications.</doc> <type name="SizeGroup"/> </property> <property name="accelerator" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The accelerator(s) represented by this object. This property is used if #GtkShortcutsShortcut:shortcut-type is set to #GTK_SHORTCUT_ACCELERATOR. The syntax of this property is (an extension of) the syntax understood by 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 & between the keys. Examples: - A single shortcut: <ctl><alt>delete - Two alternative shortcuts: <shift>a Home - A range of shortcuts: <alt>1...<alt>9 - Several keys pressed together: Control_L&Control_R - A sequence of shortcuts or keys: <ctl>c+<ctl>x Use + instead of & when the keys may (or have to be) pressed sequentially (e.g use t+t for 'press the t key twice'). Note that <, > and & need to be escaped as &lt;, &gt; and &amp; when used in .ui files.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="action-name" version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 gtk_application_set_accels_for_action(), and setting #GtkShortcutsShortcut::accelerator is not necessary.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="direction" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="TextDirection"/> </property> <property name="icon" writable="1" transfer-ownership="none"> <doc xml:space="preserve">An icon to represent the shortcut or gesture. This property is used if #GtkShortcutsShortcut:shortcut-type is set to #GTK_SHORTCUT_GESTURE. For the other predefined gesture types, GTK+ provides an icon on its own.</doc> <type name="Gio.Icon"/> </property> <property name="icon-set" writable="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an icon has been set.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="shortcut-type" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The type of shortcut that is represented.</doc> <type name="ShortcutType"/> </property> <property name="subtitle" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="subtitle-set" writable="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a subtitle has been set.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="title" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="title-size-group" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The size group for the textual portion of this shortcut. This is used internally by GTK+, and must not be modified by applications.</doc> <type name="SizeGroup"/> </property> </class> <record name="ShortcutsShortcutClass" c:type="GtkShortcutsShortcutClass" disguised="1" glib:is-gtype-struct-for="ShortcutsShortcut"> </record> <class name="ShortcutsWindow" c:symbol-prefix="shortcuts_window" c:type="GtkShortcutsWindow" parent="Window" glib:type-name="GtkShortcutsWindow" glib:get-type="gtk_shortcuts_window_get_type" glib:type-struct="ShortcutsWindowClass"> <doc xml:space="preserve">A GtkShortcutsWindow shows brief information about the keyboard shortcuts and gestures of an application. The shortcuts can be grouped, and you can have multiple sections in this window, corresponding to the major modes of your application. Additionally, the shortcuts can be filtered by the current view, to avoid showing information that is not relevant in the current application context. The recommended way to construct a GtkShortcutsWindow is with GtkBuilder, by populating a #GtkShortcutsWindow with one or more #GtkShortcutsSection objects, which contain #GtkShortcutsGroups that in turn contain objects of class #GtkShortcutsShortcut. # A simple example:  This example has as single section. As you can see, the shortcut groups are arranged in columns, and spread across several pages if there are too many to find on a single page. The .ui file for this example can be found [here](https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/shortcuts-gedit.ui). # An example with multiple views:  This example shows a #GtkShortcutsWindow that has been configured to show only the shortcuts relevant to the "stopwatch" view. The .ui file for this example can be found [here](https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/shortcuts-clocks.ui). # An example with multiple sections:  This example shows a #GtkShortcutsWindow with two sections, "Editor Shortcuts" and "Terminal Shortcuts". The .ui file for this example can be found [here](https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/shortcuts-builder.ui).</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <virtual-method name="close"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="ShortcutsWindow" c:type="GtkShortcutsWindow*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="search"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="ShortcutsWindow" c:type="GtkShortcutsWindow*"/> </instance-parameter> </parameters> </virtual-method> <property name="section-name" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="view-name" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The view name by which to filter the contents. This should correspond to the #GtkShortcutsGroup:view property of some of the #GtkShortcutsGroup objects that are inside this shortcuts window. Set this to %NULL to show all groups.</doc> <type name="utf8" c:type="gchar*"/> </property> <field name="window"> <type name="Window" c:type="GtkWindow"/> </field> <glib:signal name="close" when="last" action="1"> <doc xml:space="preserve">The ::close signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to close the window. The default binding for this signal is the Escape key.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="search" when="last" action="1"> <doc xml:space="preserve">The ::search signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to start a search. The default binding for this signal is Control-F.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="ShortcutsWindowClass" c:type="GtkShortcutsWindowClass" glib:is-gtype-struct-for="ShortcutsWindow"> <field name="parent_class"> <type name="WindowClass" c:type="GtkWindowClass"/> </field> <field name="close"> <callback name="close"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="ShortcutsWindow" c:type="GtkShortcutsWindow*"/> </parameter> </parameters> </callback> </field> <field name="search"> <callback name="search"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="ShortcutsWindow" c:type="GtkShortcutsWindow*"/> </parameter> </parameters> </callback> </field> </record> <class name="SizeGroup" c:symbol-prefix="size_group" c:type="GtkSizeGroup" parent="GObject.Object" glib:type-name="GtkSizeGroup" glib:get-type="gtk_size_group_get_type" glib:type-struct="SizeGroupClass"> <doc xml:space="preserve">#GtkSizeGroup provides a mechanism for grouping a number of widgets together so they all request the same amount of space. This is typically useful when you want a column of widgets to have the same size, but you canât use a #GtkGrid widget. In detail, the size requested for each widget in a #GtkSizeGroup is the maximum of the sizes that would have been requested for each widget in the size group if they were not in the size group. The mode of the size group (see gtk_size_group_set_mode()) determines whether this applies to the horizontal size, the vertical size, or both sizes. Note that size groups only affect the amount of space requested, not the size that the widgets finally receive. If you want the widgets in a #GtkSizeGroup to actually be the same size, you need to pack them in such a way that they get the size they request and not more. For example, if you are packing your widgets into a table, you would not include the %GTK_FILL flag. #GtkSizeGroup objects are referenced by each widget in the size group, so once you have added all widgets to a #GtkSizeGroup, you can drop the initial reference to the size group with g_object_unref(). If the widgets in the size group are subsequently destroyed, then they will be removed from the size group and drop their references on the size group; when all widgets have been removed, the size group will be freed. Widgets can be part of multiple size groups; GTK+ will compute the horizontal size of a widget from the horizontal requisition of all widgets that can be reached from the widget by a chain of size groups of type %GTK_SIZE_GROUP_HORIZONTAL or %GTK_SIZE_GROUP_BOTH, and the vertical size from the vertical requisition of all widgets that can be reached from the widget by a chain of size groups of type %GTK_SIZE_GROUP_VERTICAL or %GTK_SIZE_GROUP_BOTH. Note that only non-contextual sizes of every widget are ever consulted by size groups (since size groups have no knowledge of what size a widget will be allocated in one dimension, it cannot derive how much height a widget will receive for a given width). When grouping widgets that trade height for width in mode %GTK_SIZE_GROUP_VERTICAL or %GTK_SIZE_GROUP_BOTH: the height for the minimum width will be the requested height for all widgets in the group. The same is of course true when horizontally grouping width for height widgets. Widgets that trade height-for-width should set a reasonably large minimum width by way of #GtkLabel:width-chars for instance. Widgets with static sizes as well as widgets that grow (such as ellipsizing text) need no such considerations. # GtkSizeGroup as GtkBuildable Size groups can be specified in a UI definition by placing an <object> element with `class="GtkSizeGroup"` somewhere in the UI definition. The widgets that belong to the size group are specified by a <widgets> element that may contain multiple <widget> elements, one for each member of the size group. The ânameâ attribute gives the id of the widget. An example of a UI definition fragment with GtkSizeGroup: |[ <object class="GtkSizeGroup"> <property name="mode">GTK_SIZE_GROUP_HORIZONTAL</property> <widgets> <widget name="radio1"/> <widget name="radio2"/> </widgets> </object> ]|</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_size_group_new"> <doc xml:space="preserve">Create a new #GtkSizeGroup.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </return-value> <parameters> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">the mode for the new size group.</doc> <type name="SizeGroupMode" c:type="GtkSizeGroupMode"/> </parameter> </parameters> </constructor> <method name="add_widget" c:identifier="gtk_size_group_add_widget"> <doc xml:space="preserve">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 gtk_size_group_set_mode(). When the widget is destroyed or no longer referenced elsewhere, it will be removed from the size group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="size_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="get_ignore_hidden" c:identifier="gtk_size_group_get_ignore_hidden" version="2.8" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Returns if invisible widgets are ignored when calculating the size.</doc> <doc-deprecated xml:space="preserve">Measuring the size of hidden widgets has not worked reliably for a long time. In most cases, they will report a size of 0 nowadays, and thus, their size will not affect the other size group members. In effect, size groups will always operate as if this property was %TRUE. Use a #GtkStack instead to hide widgets while still having their size taken into account.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if invisible widgets are ignored.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="size_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </instance-parameter> </parameters> </method> <method name="get_mode" c:identifier="gtk_size_group_get_mode"> <doc xml:space="preserve">Gets the current mode of the size group. See gtk_size_group_set_mode().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current mode of the size group.</doc> <type name="SizeGroupMode" c:type="GtkSizeGroupMode"/> </return-value> <parameters> <instance-parameter name="size_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </instance-parameter> </parameters> </method> <method name="get_widgets" c:identifier="gtk_size_group_get_widgets" version="2.10"> <doc xml:space="preserve">Returns the list of widgets associated with @size_group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GSList of widgets. The list is owned by GTK+ and should not be modified.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="Widget"/> </type> </return-value> <parameters> <instance-parameter name="size_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </instance-parameter> </parameters> </method> <method name="remove_widget" c:identifier="gtk_size_group_remove_widget"> <doc xml:space="preserve">Removes a widget from a #GtkSizeGroup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="size_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWidget to remove</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_ignore_hidden" c:identifier="gtk_size_group_set_ignore_hidden" version="2.8" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Sets whether unmapped widgets should be ignored when calculating the size.</doc> <doc-deprecated xml:space="preserve">Measuring the size of hidden widgets has not worked reliably for a long time. In most cases, they will report a size of 0 nowadays, and thus, their size will not affect the other size group members. In effect, size groups will always operate as if this property was %TRUE. Use a #GtkStack instead to hide widgets while still having their size taken into account.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="size_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </instance-parameter> <parameter name="ignore_hidden" transfer-ownership="none"> <doc xml:space="preserve">whether unmapped widgets should be ignored when calculating the size</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_mode" c:identifier="gtk_size_group_set_mode"> <doc xml:space="preserve">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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="size_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </instance-parameter> <parameter name="mode" transfer-ownership="none"> <doc xml:space="preserve">the mode to set for the size group.</doc> <type name="SizeGroupMode" c:type="GtkSizeGroupMode"/> </parameter> </parameters> </method> <property name="ignore-hidden" version="2.8" deprecated="1" deprecated-version="3.22" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, unmapped widgets are ignored when determining the size of the group.</doc> <doc-deprecated xml:space="preserve">Measuring the size of hidden widgets has not worked reliably for a long time. In most cases, they will report a size of 0 nowadays, and thus, their size will not affect the other size group members. In effect, size groups will always operate as if this property was %TRUE. Use a #GtkStack instead to hide widgets while still having their size taken into account.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="mode" writable="1" transfer-ownership="none"> <type name="SizeGroupMode"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="SizeGroupPrivate" c:type="GtkSizeGroupPrivate*"/> </field> </class> <record name="SizeGroupClass" c:type="GtkSizeGroupClass" glib:is-gtype-struct-for="SizeGroup"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="SizeGroupMode" glib:type-name="GtkSizeGroupMode" glib:get-type="gtk_size_group_mode_get_type" c:type="GtkSizeGroupMode"> <doc xml:space="preserve">The mode of the size group determines the directions in which the size group affects the requested sizes of its component widgets.</doc> <member name="none" value="0" c:identifier="GTK_SIZE_GROUP_NONE" glib:nick="none"> <doc xml:space="preserve">group has no effect</doc> </member> <member name="horizontal" value="1" c:identifier="GTK_SIZE_GROUP_HORIZONTAL" glib:nick="horizontal"> <doc xml:space="preserve">group affects horizontal requisition</doc> </member> <member name="vertical" value="2" c:identifier="GTK_SIZE_GROUP_VERTICAL" glib:nick="vertical"> <doc xml:space="preserve">group affects vertical requisition</doc> </member> <member name="both" value="3" c:identifier="GTK_SIZE_GROUP_BOTH" glib:nick="both"> <doc xml:space="preserve">group affects both horizontal and vertical requisition</doc> </member> </enumeration> <record name="SizeGroupPrivate" c:type="GtkSizeGroupPrivate" disguised="1"> </record> <enumeration name="SizeRequestMode" glib:type-name="GtkSizeRequestMode" glib:get-type="gtk_size_request_mode_get_type" c:type="GtkSizeRequestMode"> <doc xml:space="preserve">Specifies a preference for height-for-width or width-for-height geometry management.</doc> <member name="height_for_width" value="0" c:identifier="GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH" glib:nick="height-for-width"> <doc xml:space="preserve">Prefer height-for-width geometry management</doc> </member> <member name="width_for_height" value="1" c:identifier="GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT" glib:nick="width-for-height"> <doc xml:space="preserve">Prefer width-for-height geometry management</doc> </member> <member name="constant_size" value="2" c:identifier="GTK_SIZE_REQUEST_CONSTANT_SIZE" glib:nick="constant-size"> <doc xml:space="preserve">Donât trade height-for-width or width-for-height</doc> </member> </enumeration> <class name="Socket" c:symbol-prefix="socket" c:type="GtkSocket" parent="Container" glib:type-name="GtkSocket" glib:get-type="gtk_socket_get_type" glib:type-struct="SocketClass"> <doc xml:space="preserve">Together with #GtkPlug, #GtkSocket provides the ability to embed widgets from one process into another process in a fashion that is transparent to the user. One process creates a #GtkSocket widget and passes that widgetâs window ID to the other process, which then creates a #GtkPlug with that window ID. Any widgets contained in the #GtkPlug then will appear inside the first applicationâs window. The socketâs window ID is obtained by using gtk_socket_get_id(). Before using this function, the socket must have been realized, and for hence, have been added to its parent. ## Obtaining the window ID of a socket. |[<!-- language="C" --> GtkWidget *socket = gtk_socket_new (); gtk_widget_show (socket); gtk_container_add (GTK_CONTAINER (parent), socket); // The following call is only necessary if one of // the ancestors of the socket is not yet visible. gtk_widget_realize (socket); g_print ("The ID of the sockets window is %#x\n", gtk_socket_get_id (socket)); ]| Note that if you pass the window ID of the socket to another process that will create a plug in the socket, you must make sure that the socket widget is not destroyed until that plug is created. Violating this rule will cause unpredictable consequences, the most likely consequence being that the plug will appear as a separate toplevel window. You can check if the plug has been created by using gtk_socket_get_plug_window(). If it returns a non-%NULL value, then the plug has been successfully created inside of the socket. When GTK+ is notified that the embedded window has been destroyed, then it will destroy the socket as well. You should always, therefore, be prepared for your sockets to be destroyed at any time when the main event loop is running. To prevent this from happening, you can connect to the #GtkSocket::plug-removed signal. The communication between a #GtkSocket and a #GtkPlug follows the [XEmbed Protocol](http://www.freedesktop.org/Standards/xembed-spec). This protocol has also been implemented in other toolkits, e.g. Qt, allowing the same level of integration when embedding a Qt widget in GTK or vice versa. The #GtkPlug and #GtkSocket widgets are only available when GTK+ is compiled for the X11 platform and %GDK_WINDOWING_X11 is defined. They can only be used on a #GdkX11Display. To use #GtkPlug and #GtkSocket, you need to include the `gtk/gtkx.h` header.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_socket_new"> <doc xml:space="preserve">Create a new empty #GtkSocket.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkSocket.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="plug_added"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="socket_" transfer-ownership="none"> <type name="Socket" c:type="GtkSocket*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="plug_removed"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="socket_" transfer-ownership="none"> <type name="Socket" c:type="GtkSocket*"/> </instance-parameter> </parameters> </virtual-method> <method name="add_id" c:identifier="gtk_socket_add_id"> <doc xml:space="preserve">Adds an XEMBED client, such as a #GtkPlug, to the #GtkSocket. The client may be in the same process or in a different process. To embed a #GtkPlug in a #GtkSocket, you can either create the #GtkPlug with `gtk_plug_new (0)`, call gtk_plug_get_id() to get the window ID of the plug, and then pass that to the gtk_socket_add_id(), or you can call gtk_socket_get_id() to get the window ID for the socket, and call gtk_plug_new() passing in that ID. The #GtkSocket must have already be added into a toplevel window before you can make this call.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="socket_" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSocket</doc> <type name="Socket" c:type="GtkSocket*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">the Window of a client participating in the XEMBED protocol.</doc> <type name="xlib.Window" c:type="Window"/> </parameter> </parameters> </method> <method name="get_id" c:identifier="gtk_socket_get_id"> <doc xml:space="preserve">Gets the window ID of a #GtkSocket widget, which can then be used to create a client embedded inside the socket, for instance with gtk_plug_new(). The #GtkSocket must have already be added into a toplevel window before you can make this call.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the window ID for the socket</doc> <type name="xlib.Window" c:type="Window"/> </return-value> <parameters> <instance-parameter name="socket_" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSocket.</doc> <type name="Socket" c:type="GtkSocket*"/> </instance-parameter> </parameters> </method> <method name="get_plug_window" c:identifier="gtk_socket_get_plug_window" version="2.14"> <doc xml:space="preserve">Retrieves the window of the plug. Use this to check if the plug has been created inside of the socket.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the window of the plug if available, or %NULL</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="socket_" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSocket.</doc> <type name="Socket" c:type="GtkSocket*"/> </instance-parameter> </parameters> </method> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv"> <type name="SocketPrivate" c:type="GtkSocketPrivate*"/> </field> <glib:signal name="plug-added" when="last"> <doc xml:space="preserve">This signal is emitted when a client is successfully added to the socket.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="plug-removed" when="last"> <doc xml:space="preserve">This signal is emitted when a client is removed from the socket. The default action is to destroy the #GtkSocket widget, so if you want to reuse it you must add a signal handler that returns %TRUE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> </class> <record name="SocketClass" c:type="GtkSocketClass" glib:is-gtype-struct-for="Socket"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="plug_added"> <callback name="plug_added"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="socket_" transfer-ownership="none"> <type name="Socket" c:type="GtkSocket*"/> </parameter> </parameters> </callback> </field> <field name="plug_removed"> <callback name="plug_removed"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="socket_" transfer-ownership="none"> <type name="Socket" c:type="GtkSocket*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="SocketPrivate" c:type="GtkSocketPrivate" disguised="1"> </record> <enumeration name="SortType" glib:type-name="GtkSortType" glib:get-type="gtk_sort_type_get_type" c:type="GtkSortType"> <doc xml:space="preserve">Determines the direction of a sort.</doc> <member name="ascending" value="0" c:identifier="GTK_SORT_ASCENDING" glib:nick="ascending"> <doc xml:space="preserve">Sorting is in ascending order.</doc> </member> <member name="descending" value="1" c:identifier="GTK_SORT_DESCENDING" glib:nick="descending"> <doc xml:space="preserve">Sorting is in descending order.</doc> </member> </enumeration> <class name="SpinButton" c:symbol-prefix="spin_button" c:type="GtkSpinButton" parent="Entry" glib:type-name="GtkSpinButton" glib:get-type="gtk_spin_button_get_type" glib:type-struct="SpinButtonClass"> <doc xml:space="preserve">A #GtkSpinButton is an ideal way to allow the user to set the value of some attribute. Rather than having to directly type a number into a #GtkEntry, GtkSpinButton allows the user to click on one of two arrows to increment or decrement the displayed value. A value can still be typed in, with the bonus that it can be checked to ensure it is in a given range. The main properties of a GtkSpinButton are through an adjustment. See the #GtkAdjustment section for more details about an adjustment's properties. Note that GtkSpinButton will by default make its entry large enough to accomodate the lower and upper bounds of the adjustment, which can lead to surprising results. Best practice is to set both the #GtkEntry:width-chars and #GtkEntry:max-width-chars poperties to the desired number of characters to display in the entry. # CSS nodes |[<!-- language="plain" --> spinbutton.horizontal âââ undershoot.left âââ undershoot.right âââ entry â â°ââ ... âââ button.down â°ââ button.up ]| |[<!-- language="plain" --> spinbutton.vertical âââ undershoot.left âââ undershoot.right âââ button.up âââ entry â â°ââ ... â°ââ button.down ]| GtkSpinButtons main CSS node has the name spinbutton. It creates subnodes for the entry and the two buttons, with these names. The button nodes have the style classes .up and .down. The GtkEntry subnodes (if present) are put below the entry node. The orientation of the spin button is reflected in the .vertical or .horizontal style class on the main node. ## Using a GtkSpinButton to get an integer |[<!-- language="C" --> // Provides a function to retrieve an integer value from a GtkSpinButton // and creates a spin button to model percentage values. gint grab_int_value (GtkSpinButton *button, gpointer user_data) { return gtk_spin_button_get_value_as_int (button); } void create_integer_spin_button (void) { GtkWidget *window, *button; GtkAdjustment *adjustment; adjustment = gtk_adjustment_new (50.0, 0.0, 100.0, 1.0, 5.0, 0.0); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window), 5); // creates the spinbutton, with no decimal places button = gtk_spin_button_new (adjustment, 1.0, 0); gtk_container_add (GTK_CONTAINER (window), button); gtk_widget_show_all (window); } ]| ## Using a GtkSpinButton to get a floating point value |[<!-- language="C" --> // Provides a function to retrieve a floating point value from a // GtkSpinButton, and creates a high precision spin button. gfloat grab_float_value (GtkSpinButton *button, gpointer user_data) { return gtk_spin_button_get_value (button); } void create_floating_spin_button (void) { GtkWidget *window, *button; GtkAdjustment *adjustment; adjustment = gtk_adjustment_new (2.500, 0.0, 5.0, 0.001, 0.1, 0.0); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window), 5); // creates the spinbutton, with three decimal places button = gtk_spin_button_new (adjustment, 0.001, 3); gtk_container_add (GTK_CONTAINER (window), button); gtk_widget_show_all (window); } ]|</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="CellEditable"/> <implements name="Editable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_spin_button_new"> <doc xml:space="preserve">Creates a new #GtkSpinButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The new spin button as a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkAdjustment object that this spin button should use, or %NULL</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> <parameter name="climb_rate" transfer-ownership="none"> <doc xml:space="preserve">specifies how much the spin button changes when an arrow is clicked on</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="digits" transfer-ownership="none"> <doc xml:space="preserve">the number of decimal places to display</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </constructor> <constructor name="new_with_range" c:identifier="gtk_spin_button_new_with_range"> <doc xml:space="preserve">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 gtk_spin_button_set_digits() to correct it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The new spin button as a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="min" transfer-ownership="none"> <doc xml:space="preserve">Minimum allowable value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="max" transfer-ownership="none"> <doc xml:space="preserve">Maximum allowable value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">Increment added or subtracted by spinning the widget</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <virtual-method name="change_value"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> </parameters> </virtual-method> <virtual-method name="input"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="new_value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </virtual-method> <virtual-method name="output"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="value_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="wrapped"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="configure" c:identifier="gtk_spin_button_configure"> <doc xml:space="preserve">Changes the properties of an existing spin button. The adjustment, climb rate, and number of decimal places are updated accordingly.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkAdjustment to replace the spin buttonâs existing adjustment, or %NULL to leave its current adjustment unchanged</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> <parameter name="climb_rate" transfer-ownership="none"> <doc xml:space="preserve">the new climb rate</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="digits" transfer-ownership="none"> <doc xml:space="preserve">the number of decimal places to display in the spin button</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="get_adjustment" c:identifier="gtk_spin_button_get_adjustment"> <doc xml:space="preserve">Get the adjustment associated with a #GtkSpinButton</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkAdjustment of @spin_button</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <method name="get_digits" c:identifier="gtk_spin_button_get_digits"> <doc xml:space="preserve">Fetches the precision of @spin_button. See gtk_spin_button_set_digits().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current precision</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <method name="get_increments" c:identifier="gtk_spin_button_get_increments"> <doc xml:space="preserve">Gets the current step and page the increments used by @spin_button. See gtk_spin_button_set_increments().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="step" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store step increment, or %NULL</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="page" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store page increment, or %NULL</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="get_numeric" c:identifier="gtk_spin_button_get_numeric"> <doc xml:space="preserve">Returns whether non-numeric text can be typed into the spin button. See gtk_spin_button_set_numeric().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if only numeric text can be entered</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <method name="get_range" c:identifier="gtk_spin_button_get_range"> <doc xml:space="preserve">Gets the range allowed for @spin_button. See gtk_spin_button_set_range().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store minimum allowed value, or %NULL</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="max" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store maximum allowed value, or %NULL</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="get_snap_to_ticks" c:identifier="gtk_spin_button_get_snap_to_ticks"> <doc xml:space="preserve">Returns whether the values are corrected to the nearest step. See gtk_spin_button_set_snap_to_ticks().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if values are snapped to the nearest step</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <method name="get_update_policy" c:identifier="gtk_spin_button_get_update_policy"> <doc xml:space="preserve">Gets the update behavior of a spin button. See gtk_spin_button_set_update_policy().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current update policy</doc> <type name="SpinButtonUpdatePolicy" c:type="GtkSpinButtonUpdatePolicy"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <method name="get_value" c:identifier="gtk_spin_button_get_value"> <doc xml:space="preserve">Get the value in the @spin_button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of @spin_button</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <method name="get_value_as_int" c:identifier="gtk_spin_button_get_value_as_int"> <doc xml:space="preserve">Get the value @spin_button represented as an integer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the value of @spin_button</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <method name="get_wrap" c:identifier="gtk_spin_button_get_wrap"> <doc xml:space="preserve">Returns whether the spin buttonâs value wraps around to the opposite limit when the upper or lower limit of the range is exceeded. See gtk_spin_button_set_wrap().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the spin button wraps around</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <method name="set_adjustment" c:identifier="gtk_spin_button_set_adjustment"> <doc xml:space="preserve">Replaces the #GtkAdjustment associated with @spin_button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAdjustment to replace the existing adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_digits" c:identifier="gtk_spin_button_set_digits"> <doc xml:space="preserve">Set the precision to be displayed by @spin_button. Up to 20 digit precision is allowed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="digits" transfer-ownership="none"> <doc xml:space="preserve">the number of digits after the decimal point to be displayed for the spin buttonâs value</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_increments" c:identifier="gtk_spin_button_set_increments"> <doc xml:space="preserve">Sets the step and page increments for spin_button. This affects how quickly the value changes when the spin buttonâs arrows are activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">increment applied for a button 1 press.</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="page" transfer-ownership="none"> <doc xml:space="preserve">increment applied for a button 2 press.</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_numeric" c:identifier="gtk_spin_button_set_numeric"> <doc xml:space="preserve">Sets the flag that determines if non-numeric text can be typed into the spin button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="numeric" transfer-ownership="none"> <doc xml:space="preserve">flag indicating if only numeric entry is allowed</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_range" c:identifier="gtk_spin_button_set_range"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="min" transfer-ownership="none"> <doc xml:space="preserve">minimum allowable value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="max" transfer-ownership="none"> <doc xml:space="preserve">maximum allowable value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_snap_to_ticks" c:identifier="gtk_spin_button_set_snap_to_ticks"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="snap_to_ticks" transfer-ownership="none"> <doc xml:space="preserve">a flag indicating if invalid values should be corrected</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_update_policy" c:identifier="gtk_spin_button_set_update_policy"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="policy" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButtonUpdatePolicy value</doc> <type name="SpinButtonUpdatePolicy" c:type="GtkSpinButtonUpdatePolicy"/> </parameter> </parameters> </method> <method name="set_value" c:identifier="gtk_spin_button_set_value"> <doc xml:space="preserve">Sets the value of @spin_button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_wrap" c:identifier="gtk_spin_button_set_wrap"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="wrap" transfer-ownership="none"> <doc xml:space="preserve">a flag indicating if wrapping behavior is performed</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="spin" c:identifier="gtk_spin_button_spin"> <doc xml:space="preserve">Increment or decrement a spin buttonâs value in a specified direction by a specified amount.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinType indicating the direction to spin</doc> <type name="SpinType" c:type="GtkSpinType"/> </parameter> <parameter name="increment" transfer-ownership="none"> <doc xml:space="preserve">step increment to apply in the specified direction</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="update" c:identifier="gtk_spin_button_update"> <doc xml:space="preserve">Manually force an update of the spin button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spin_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinButton</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </instance-parameter> </parameters> </method> <property name="adjustment" writable="1" transfer-ownership="none"> <type name="Adjustment"/> </property> <property name="climb-rate" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <property name="digits" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="numeric" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="snap-to-ticks" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="update-policy" writable="1" transfer-ownership="none"> <type name="SpinButtonUpdatePolicy"/> </property> <property name="value" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <property name="wrap" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="entry"> <type name="Entry" c:type="GtkEntry"/> </field> <field name="priv" readable="0" private="1"> <type name="SpinButtonPrivate" c:type="GtkSpinButtonPrivate*"/> </field> <glib:signal name="change-value" when="last" action="1"> <doc xml:space="preserve">The ::change-value signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a value change. 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 and/PageDown.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="scroll" transfer-ownership="none"> <doc xml:space="preserve">a #GtkScrollType to specify the speed and amount of change</doc> <type name="ScrollType"/> </parameter> </parameters> </glib:signal> <glib:signal name="input" when="last"> <doc xml:space="preserve">The ::input signal can be used to influence the conversion of the users input into a double value. The signal handler is expected to use gtk_entry_get_text() to retrieve the text of the entry and set @new_value to the new value. The default conversion uses g_strtod().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE for a successful conversion, %FALSE if the input was not handled, and %GTK_INPUT_ERROR if the conversion failed.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="new_value" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the new value</doc> <type name="gdouble" c:type="gpointer"/> </parameter> </parameters> </glib:signal> <glib:signal name="output" when="last"> <doc xml:space="preserve">The ::output signal can be used to change to formatting of the value that is displayed in the spin buttons entry. |[<!-- language="C" --> // show leading zeros static gboolean on_output (GtkSpinButton *spin, gpointer data) { GtkAdjustment *adjustment; gchar *text; int value; adjustment = gtk_spin_button_get_adjustment (spin); value = (int)gtk_adjustment_get_value (adjustment); text = g_strdup_printf ("%02d", value); gtk_entry_set_text (GTK_ENTRY (spin), text); g_free (text); return TRUE; } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the value has been displayed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="value-changed" when="last"> <doc xml:space="preserve">The ::value-changed signal is emitted when the value represented by @spinbutton changes. Also see the #GtkSpinButton::output signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="wrapped" when="last" version="2.10"> <doc xml:space="preserve">The ::wrapped signal is emitted right after the spinbutton wraps from its maximum to minimum value or vice-versa.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="SpinButtonAccessible" c:symbol-prefix="spin_button_accessible" c:type="GtkSpinButtonAccessible" parent="EntryAccessible" glib:type-name="GtkSpinButtonAccessible" glib:get-type="gtk_spin_button_accessible_get_type" glib:type-struct="SpinButtonAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.EditableText"/> <implements name="Atk.Text"/> <implements name="Atk.Value"/> <field name="parent"> <type name="EntryAccessible" c:type="GtkEntryAccessible"/> </field> <field name="priv"> <type name="SpinButtonAccessiblePrivate" c:type="GtkSpinButtonAccessiblePrivate*"/> </field> </class> <record name="SpinButtonAccessibleClass" c:type="GtkSpinButtonAccessibleClass" glib:is-gtype-struct-for="SpinButtonAccessible"> <field name="parent_class"> <type name="EntryAccessibleClass" c:type="GtkEntryAccessibleClass"/> </field> </record> <record name="SpinButtonAccessiblePrivate" c:type="GtkSpinButtonAccessiblePrivate" disguised="1"> </record> <record name="SpinButtonClass" c:type="GtkSpinButtonClass" glib:is-gtype-struct-for="SpinButton"> <field name="parent_class"> <type name="EntryClass" c:type="GtkEntryClass"/> </field> <field name="input"> <callback name="input"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </parameter> <parameter name="new_value" transfer-ownership="none"> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </callback> </field> <field name="output"> <callback name="output"> <return-value transfer-ownership="none"> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </parameter> </parameters> </callback> </field> <field name="value_changed"> <callback name="value_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </parameter> </parameters> </callback> </field> <field name="change_value"> <callback name="change_value"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </parameter> <parameter name="scroll" transfer-ownership="none"> <type name="ScrollType" c:type="GtkScrollType"/> </parameter> </parameters> </callback> </field> <field name="wrapped"> <callback name="wrapped"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="spin_button" transfer-ownership="none"> <type name="SpinButton" c:type="GtkSpinButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="SpinButtonPrivate" c:type="GtkSpinButtonPrivate" disguised="1"> </record> <enumeration name="SpinButtonUpdatePolicy" glib:type-name="GtkSpinButtonUpdatePolicy" glib:get-type="gtk_spin_button_update_policy_get_type" c:type="GtkSpinButtonUpdatePolicy"> <doc xml:space="preserve">The spin button update policy determines whether the spin button displays values even if they are outside the bounds of its adjustment. See gtk_spin_button_set_update_policy().</doc> <member name="always" value="0" c:identifier="GTK_UPDATE_ALWAYS" glib:nick="always"> <doc xml:space="preserve">When refreshing your #GtkSpinButton, the value is always displayed</doc> </member> <member name="if_valid" value="1" c:identifier="GTK_UPDATE_IF_VALID" glib:nick="if-valid"> <doc xml:space="preserve">When refreshing your #GtkSpinButton, the value is only displayed if it is valid within the bounds of the spin button's adjustment</doc> </member> </enumeration> <enumeration name="SpinType" glib:type-name="GtkSpinType" glib:get-type="gtk_spin_type_get_type" c:type="GtkSpinType"> <doc xml:space="preserve">The values of the GtkSpinType enumeration are used to specify the change to make in gtk_spin_button_spin().</doc> <member name="step_forward" value="0" c:identifier="GTK_SPIN_STEP_FORWARD" glib:nick="step-forward"> <doc xml:space="preserve">Increment by the adjustments step increment.</doc> </member> <member name="step_backward" value="1" c:identifier="GTK_SPIN_STEP_BACKWARD" glib:nick="step-backward"> <doc xml:space="preserve">Decrement by the adjustments step increment.</doc> </member> <member name="page_forward" value="2" c:identifier="GTK_SPIN_PAGE_FORWARD" glib:nick="page-forward"> <doc xml:space="preserve">Increment by the adjustments page increment.</doc> </member> <member name="page_backward" value="3" c:identifier="GTK_SPIN_PAGE_BACKWARD" glib:nick="page-backward"> <doc xml:space="preserve">Decrement by the adjustments page increment.</doc> </member> <member name="home" value="4" c:identifier="GTK_SPIN_HOME" glib:nick="home"> <doc xml:space="preserve">Go to the adjustments lower bound.</doc> </member> <member name="end" value="5" c:identifier="GTK_SPIN_END" glib:nick="end"> <doc xml:space="preserve">Go to the adjustments upper bound.</doc> </member> <member name="user_defined" value="6" c:identifier="GTK_SPIN_USER_DEFINED" glib:nick="user-defined"> <doc xml:space="preserve">Change by a specified amount.</doc> </member> </enumeration> <class name="Spinner" c:symbol-prefix="spinner" c:type="GtkSpinner" parent="Widget" glib:type-name="GtkSpinner" glib:get-type="gtk_spinner_get_type" glib:type-struct="SpinnerClass"> <doc xml:space="preserve">A GtkSpinner widget displays an icon-size spinning animation. It is often used as an alternative to a #GtkProgressBar for displaying indefinite activity, instead of actual progress. To start the animation, use gtk_spinner_start(), to stop it use gtk_spinner_stop(). # CSS nodes GtkSpinner has a single CSS node with the name spinner. When the animation is active, the :checked pseudoclass is added to this node.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_spinner_new" version="2.20"> <doc xml:space="preserve">Returns a new spinner widget. Not yet started.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkSpinner</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="start" c:identifier="gtk_spinner_start" version="2.20"> <doc xml:space="preserve">Starts the animation of the spinner.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spinner" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinner</doc> <type name="Spinner" c:type="GtkSpinner*"/> </instance-parameter> </parameters> </method> <method name="stop" c:identifier="gtk_spinner_stop" version="2.20"> <doc xml:space="preserve">Stops the animation of the spinner.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="spinner" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSpinner</doc> <type name="Spinner" c:type="GtkSpinner*"/> </instance-parameter> </parameters> </method> <property name="active" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="SpinnerPrivate" c:type="GtkSpinnerPrivate*"/> </field> </class> <class name="SpinnerAccessible" c:symbol-prefix="spinner_accessible" c:type="GtkSpinnerAccessible" parent="WidgetAccessible" glib:type-name="GtkSpinnerAccessible" glib:get-type="gtk_spinner_accessible_get_type" glib:type-struct="SpinnerAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="SpinnerAccessiblePrivate" c:type="GtkSpinnerAccessiblePrivate*"/> </field> </class> <record name="SpinnerAccessibleClass" c:type="GtkSpinnerAccessibleClass" glib:is-gtype-struct-for="SpinnerAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="SpinnerAccessiblePrivate" c:type="GtkSpinnerAccessiblePrivate" disguised="1"> </record> <record name="SpinnerClass" c:type="GtkSpinnerClass" glib:is-gtype-struct-for="Spinner"> <field name="parent_class"> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="SpinnerPrivate" c:type="GtkSpinnerPrivate" disguised="1"> </record> <class name="Stack" c:symbol-prefix="stack" c:type="GtkStack" parent="Container" glib:type-name="GtkStack" glib:get-type="gtk_stack_get_type" glib:type-struct="StackClass"> <doc xml:space="preserve">The GtkStack widget is a container which only shows one of its children at a time. In contrast to GtkNotebook, GtkStack does not provide a means for users to change the visible child. Instead, the #GtkStackSwitcher widget can be used with GtkStack to provide this functionality. Transitions between pages can be animated as slides or fades. This can be controlled with gtk_stack_set_transition_type(). These animations respect the #GtkSettings:gtk-enable-animations setting. The GtkStack widget was added in GTK+ 3.10. # CSS nodes GtkStack has a single CSS node named stack.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_stack_new" version="3.10"> <doc xml:space="preserve">Creates a new #GtkStack container.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkStack</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="add_named" c:identifier="gtk_stack_add_named" version="3.10"> <doc xml:space="preserve">Adds a child to @stack. The child is identified by the @name.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the widget to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name for @child</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_titled" c:identifier="gtk_stack_add_titled" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the widget to add</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name for @child</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">a human-readable title for @child</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_child_by_name" c:identifier="gtk_stack_get_child_by_name" version="3.12"> <doc xml:space="preserve">Finds the child of the #GtkStack with the name given as the argument. Returns %NULL if there is no child with this name.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the requested child of the #GtkStack</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the child to find</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_hhomogeneous" c:identifier="gtk_stack_get_hhomogeneous" version="3.16"> <doc xml:space="preserve">Gets whether @stack is horizontally homogeneous. See gtk_stack_set_hhomogeneous().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @stack is horizontally homogeneous.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="get_homogeneous" c:identifier="gtk_stack_get_homogeneous" version="3.10"> <doc xml:space="preserve">Gets whether @stack is homogeneous. See gtk_stack_set_homogeneous().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @stack is homogeneous.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="get_interpolate_size" c:identifier="gtk_stack_get_interpolate_size" version="3.18"> <doc xml:space="preserve">Returns wether the #GtkStack is set up to interpolate between the sizes of children on page switch.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if child sizes are interpolated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">A #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="get_transition_duration" c:identifier="gtk_stack_get_transition_duration" version="3.10"> <doc xml:space="preserve">Returns the amount of time (in milliseconds) that transitions between pages in @stack will take.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the transition duration</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="get_transition_running" c:identifier="gtk_stack_get_transition_running" version="3.12"> <doc xml:space="preserve">Returns whether the @stack is currently in a transition from one page to another.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the transition is currently running, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="get_transition_type" c:identifier="gtk_stack_get_transition_type" version="3.10"> <doc xml:space="preserve">Gets the type of animation that will be used for transitions between pages in @stack.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current transition type of @stack</doc> <type name="StackTransitionType" c:type="GtkStackTransitionType"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="get_vhomogeneous" c:identifier="gtk_stack_get_vhomogeneous" version="3.16"> <doc xml:space="preserve">Gets whether @stack is vertically homogeneous. See gtk_stack_set_vhomogeneous().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @stack is vertically homogeneous.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="get_visible_child" c:identifier="gtk_stack_get_visible_child" version="3.10"> <doc xml:space="preserve">Gets the currently visible child of @stack, or %NULL if there are no visible children.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the visible child of the #GtkStack</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="get_visible_child_name" c:identifier="gtk_stack_get_visible_child_name" version="3.10"> <doc xml:space="preserve">Returns the name of the currently visible child of @stack, or %NULL if there is no visible child.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the name of the visible child of the #GtkStack</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> </parameters> </method> <method name="set_hhomogeneous" c:identifier="gtk_stack_set_hhomogeneous" version="3.16"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="hhomogeneous" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make @stack horizontally homogeneous</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_homogeneous" c:identifier="gtk_stack_set_homogeneous" version="3.10"> <doc xml:space="preserve">Sets the #GtkStack to be homogeneous or not. If it is homogeneous, the #GtkStack will request the same size for all its children. If it isn't, the stack may change size when a different child becomes visible. Since 3.16, homogeneity can be controlled separately for horizontal and vertical size, with the #GtkStack:hhomogeneous and #GtkStack:vhomogeneous.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make @stack homogeneous</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_interpolate_size" c:identifier="gtk_stack_set_interpolate_size" version="3.18"> <doc xml:space="preserve">Sets whether or not @stack will interpolate its size when changing the visible child. If the #GtkStack: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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">A #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="interpolate_size" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_transition_duration" c:identifier="gtk_stack_set_transition_duration" version="3.10"> <doc xml:space="preserve">Sets the duration that transitions between pages in @stack will take.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="duration" transfer-ownership="none"> <doc xml:space="preserve">the new duration, in milliseconds</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_transition_type" c:identifier="gtk_stack_set_transition_type" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="transition" transfer-ownership="none"> <doc xml:space="preserve">the new transition type</doc> <type name="StackTransitionType" c:type="GtkStackTransitionType"/> </parameter> </parameters> </method> <method name="set_vhomogeneous" c:identifier="gtk_stack_set_vhomogeneous" version="3.16"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="vhomogeneous" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make @stack vertically homogeneous</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visible_child" c:identifier="gtk_stack_set_visible_child" version="3.10"> <doc xml:space="preserve">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 gtk_widget_show()) in order to become the visible child of @stack.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a child of @stack</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_visible_child_full" c:identifier="gtk_stack_set_visible_child_full" version="3.10"> <doc xml:space="preserve">Makes the child with the given name visible. Note that the child widget has to be visible itself (see gtk_widget_show()) in order to become the visible child of @stack.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the child to make visible</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="transition" transfer-ownership="none"> <doc xml:space="preserve">the transition type to use</doc> <type name="StackTransitionType" c:type="GtkStackTransitionType"/> </parameter> </parameters> </method> <method name="set_visible_child_name" c:identifier="gtk_stack_set_visible_child_name" version="3.10"> <doc xml:space="preserve">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 gtk_widget_show()) in order to become the visible child of @stack.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the child to make visible</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <property name="hhomogeneous" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the stack allocates the same width for all children.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="homogeneous" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="interpolate-size" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="transition-duration" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="transition-running" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="transition-type" writable="1" transfer-ownership="none"> <type name="StackTransitionType"/> </property> <property name="vhomogeneous" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the stack allocates the same height for all children.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible-child" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="visible-child-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_instance"> <type name="Container" c:type="GtkContainer"/> </field> </class> <class name="StackAccessible" c:symbol-prefix="stack_accessible" c:type="GtkStackAccessible" parent="ContainerAccessible" glib:type-name="GtkStackAccessible" glib:get-type="gtk_stack_accessible_get_type" glib:type-struct="StackAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> </class> <record name="StackAccessibleClass" c:type="GtkStackAccessibleClass" glib:is-gtype-struct-for="StackAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="StackClass" c:type="GtkStackClass" glib:is-gtype-struct-for="Stack"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> </record> <class name="StackSidebar" c:symbol-prefix="stack_sidebar" c:type="GtkStackSidebar" parent="Bin" glib:type-name="GtkStackSidebar" glib:get-type="gtk_stack_sidebar_get_type" glib:type-struct="StackSidebarClass"> <doc xml:space="preserve">A GtkStackSidebar enables you to quickly and easily provide a consistent "sidebar" object for your user interface. In order to use a GtkStackSidebar, you simply use a GtkStack to organize your UI flow, and add the sidebar to your sidebar area. You can use gtk_stack_sidebar_set_stack() to connect the #GtkStackSidebar to the #GtkStack. # CSS nodes GtkStackSidebar has a single CSS node with name stacksidebar and style class .sidebar. When circumstances require it, GtkStackSidebar adds the .needs-attention style class to the widgets representing the stack pages.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_stack_sidebar_new" version="3.16"> <doc xml:space="preserve">Creates a new sidebar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkStackSidebar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_stack" c:identifier="gtk_stack_sidebar_get_stack" version="3.16"> <doc xml:space="preserve">Retrieves the stack. See gtk_stack_sidebar_set_stack().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the associated #GtkStack or %NULL if none has been set explicitly</doc> <type name="Stack" c:type="GtkStack*"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStackSidebar</doc> <type name="StackSidebar" c:type="GtkStackSidebar*"/> </instance-parameter> </parameters> </method> <method name="set_stack" c:identifier="gtk_stack_sidebar_set_stack" version="3.16"> <doc xml:space="preserve">Set the #GtkStack associated with this #GtkStackSidebar. The sidebar widget will automatically update according to the order (packing) and items within the given #GtkStack.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sidebar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStackSidebar</doc> <type name="StackSidebar" c:type="GtkStackSidebar*"/> </instance-parameter> <parameter name="stack" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </parameter> </parameters> </method> <property name="stack" writable="1" transfer-ownership="none"> <type name="Stack"/> </property> <field name="parent"> <type name="Bin" c:type="GtkBin"/> </field> </class> <record name="StackSidebarClass" c:type="GtkStackSidebarClass" glib:is-gtype-struct-for="StackSidebar"> <field name="parent_class"> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="StackSidebarPrivate" c:type="GtkStackSidebarPrivate" disguised="1"> </record> <class name="StackSwitcher" c:symbol-prefix="stack_switcher" c:type="GtkStackSwitcher" parent="Box" glib:type-name="GtkStackSwitcher" glib:get-type="gtk_stack_switcher_get_type" glib:type-struct="StackSwitcherClass"> <doc xml:space="preserve">The GtkStackSwitcher widget acts as a controller for a #GtkStack; it shows a row of buttons to switch between the various pages of the associated stack widget. All the content for the buttons comes from the child properties of the #GtkStack; the button visibility in a #GtkStackSwitcher widget is controlled by the visibility of the child in the #GtkStack. It is possible to associate multiple #GtkStackSwitcher widgets with the same #GtkStack widget. The GtkStackSwitcher widget was added in 3.10. # CSS nodes GtkStackSwitcher has a single CSS node named stackswitcher and style class .stack-switcher. When circumstances require it, GtkStackSwitcher adds the .needs-attention style class to the widgets representing the stack pages.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_stack_switcher_new" version="3.10"> <doc xml:space="preserve">Create a new #GtkStackSwitcher.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkStackSwitcher.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <method name="get_stack" c:identifier="gtk_stack_switcher_get_stack" version="3.10"> <doc xml:space="preserve">Retrieves the stack. See gtk_stack_switcher_set_stack().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the stack, or %NULL if none has been set explicitly.</doc> <type name="Stack" c:type="GtkStack*"/> </return-value> <parameters> <instance-parameter name="switcher" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStackSwitcher</doc> <type name="StackSwitcher" c:type="GtkStackSwitcher*"/> </instance-parameter> </parameters> </method> <method name="set_stack" c:identifier="gtk_stack_switcher_set_stack" version="3.10"> <doc xml:space="preserve">Sets the stack to control.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="switcher" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStackSwitcher</doc> <type name="StackSwitcher" c:type="GtkStackSwitcher*"/> </instance-parameter> <parameter name="stack" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkStack</doc> <type name="Stack" c:type="GtkStack*"/> </parameter> </parameters> </method> <property name="icon-size" version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Use the "icon-size" property to change the size of the image displayed when a #GtkStackSwitcher is displaying icons.</doc> <type name="gint" c:type="gint"/> </property> <property name="stack" writable="1" construct="1" transfer-ownership="none"> <type name="Stack"/> </property> <field name="widget"> <type name="Box" c:type="GtkBox"/> </field> </class> <record name="StackSwitcherClass" c:type="GtkStackSwitcherClass" glib:is-gtype-struct-for="StackSwitcher"> <field name="parent_class"> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="StackTransitionType" glib:type-name="GtkStackTransitionType" glib:get-type="gtk_stack_transition_type_get_type" c:type="GtkStackTransitionType"> <doc xml:space="preserve">These enumeration values describe the possible transitions between pages in a #GtkStack widget. New values may be added to this enumeration over time.</doc> <member name="none" value="0" c:identifier="GTK_STACK_TRANSITION_TYPE_NONE" glib:nick="none"> <doc xml:space="preserve">No transition</doc> </member> <member name="crossfade" value="1" c:identifier="GTK_STACK_TRANSITION_TYPE_CROSSFADE" glib:nick="crossfade"> <doc xml:space="preserve">A cross-fade</doc> </member> <member name="slide_right" value="2" c:identifier="GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT" glib:nick="slide-right"> <doc xml:space="preserve">Slide from left to right</doc> </member> <member name="slide_left" value="3" c:identifier="GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT" glib:nick="slide-left"> <doc xml:space="preserve">Slide from right to left</doc> </member> <member name="slide_up" value="4" c:identifier="GTK_STACK_TRANSITION_TYPE_SLIDE_UP" glib:nick="slide-up"> <doc xml:space="preserve">Slide from bottom up</doc> </member> <member name="slide_down" value="5" c:identifier="GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN" glib:nick="slide-down"> <doc xml:space="preserve">Slide from top down</doc> </member> <member name="slide_left_right" value="6" c:identifier="GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT" glib:nick="slide-left-right"> <doc xml:space="preserve">Slide from left or right according to the children order</doc> </member> <member name="slide_up_down" value="7" c:identifier="GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN" glib:nick="slide-up-down"> <doc xml:space="preserve">Slide from top down or bottom up according to the order</doc> </member> <member name="over_up" value="8" c:identifier="GTK_STACK_TRANSITION_TYPE_OVER_UP" glib:nick="over-up"> <doc xml:space="preserve">Cover the old page by sliding up. Since 3.12</doc> </member> <member name="over_down" value="9" c:identifier="GTK_STACK_TRANSITION_TYPE_OVER_DOWN" glib:nick="over-down"> <doc xml:space="preserve">Cover the old page by sliding down. Since: 3.12</doc> </member> <member name="over_left" value="10" c:identifier="GTK_STACK_TRANSITION_TYPE_OVER_LEFT" glib:nick="over-left"> <doc xml:space="preserve">Cover the old page by sliding to the left. Since: 3.12</doc> </member> <member name="over_right" value="11" c:identifier="GTK_STACK_TRANSITION_TYPE_OVER_RIGHT" glib:nick="over-right"> <doc xml:space="preserve">Cover the old page by sliding to the right. Since: 3.12</doc> </member> <member name="under_up" value="12" c:identifier="GTK_STACK_TRANSITION_TYPE_UNDER_UP" glib:nick="under-up"> <doc xml:space="preserve">Uncover the new page by sliding up. Since 3.12</doc> </member> <member name="under_down" value="13" c:identifier="GTK_STACK_TRANSITION_TYPE_UNDER_DOWN" glib:nick="under-down"> <doc xml:space="preserve">Uncover the new page by sliding down. Since: 3.12</doc> </member> <member name="under_left" value="14" c:identifier="GTK_STACK_TRANSITION_TYPE_UNDER_LEFT" glib:nick="under-left"> <doc xml:space="preserve">Uncover the new page by sliding to the left. Since: 3.12</doc> </member> <member name="under_right" value="15" c:identifier="GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT" glib:nick="under-right"> <doc xml:space="preserve">Uncover the new page by sliding to the right. Since: 3.12</doc> </member> <member name="over_up_down" value="16" c:identifier="GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN" glib:nick="over-up-down"> <doc xml:space="preserve">Cover the old page sliding up or uncover the new page sliding down, according to order. Since: 3.12</doc> </member> <member name="over_down_up" value="17" c:identifier="GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP" glib:nick="over-down-up"> <doc xml:space="preserve">Cover the old page sliding down or uncover the new page sliding up, according to order. Since: 3.14</doc> </member> <member name="over_left_right" value="18" c:identifier="GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT" glib:nick="over-left-right"> <doc xml:space="preserve">Cover the old page sliding left or uncover the new page sliding right, according to order. Since: 3.14</doc> </member> <member name="over_right_left" value="19" c:identifier="GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFT" glib:nick="over-right-left"> <doc xml:space="preserve">Cover the old page sliding right or uncover the new page sliding left, according to order. Since: 3.14</doc> </member> </enumeration> <bitfield name="StateFlags" glib:type-name="GtkStateFlags" glib:get-type="gtk_state_flags_get_type" c:type="GtkStateFlags"> <doc xml:space="preserve">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.</doc> <member name="normal" value="0" c:identifier="GTK_STATE_FLAG_NORMAL" glib:nick="normal"> <doc xml:space="preserve">State during normal operation.</doc> </member> <member name="active" value="1" c:identifier="GTK_STATE_FLAG_ACTIVE" glib:nick="active"> <doc xml:space="preserve">Widget is active.</doc> </member> <member name="prelight" value="2" c:identifier="GTK_STATE_FLAG_PRELIGHT" glib:nick="prelight"> <doc xml:space="preserve">Widget has a mouse pointer over it.</doc> </member> <member name="selected" value="4" c:identifier="GTK_STATE_FLAG_SELECTED" glib:nick="selected"> <doc xml:space="preserve">Widget is selected.</doc> </member> <member name="insensitive" value="8" c:identifier="GTK_STATE_FLAG_INSENSITIVE" glib:nick="insensitive"> <doc xml:space="preserve">Widget is insensitive.</doc> </member> <member name="inconsistent" value="16" c:identifier="GTK_STATE_FLAG_INCONSISTENT" glib:nick="inconsistent"> <doc xml:space="preserve">Widget is inconsistent.</doc> </member> <member name="focused" value="32" c:identifier="GTK_STATE_FLAG_FOCUSED" glib:nick="focused"> <doc xml:space="preserve">Widget has the keyboard focus.</doc> </member> <member name="backdrop" value="64" c:identifier="GTK_STATE_FLAG_BACKDROP" glib:nick="backdrop"> <doc xml:space="preserve">Widget is in a background toplevel window.</doc> </member> <member name="dir_ltr" value="128" c:identifier="GTK_STATE_FLAG_DIR_LTR" glib:nick="dir-ltr"> <doc xml:space="preserve">Widget is in left-to-right text direction. Since 3.8</doc> </member> <member name="dir_rtl" value="256" c:identifier="GTK_STATE_FLAG_DIR_RTL" glib:nick="dir-rtl"> <doc xml:space="preserve">Widget is in right-to-left text direction. Since 3.8</doc> </member> <member name="link" value="512" c:identifier="GTK_STATE_FLAG_LINK" glib:nick="link"> <doc xml:space="preserve">Widget is a link. Since 3.12</doc> </member> <member name="visited" value="1024" c:identifier="GTK_STATE_FLAG_VISITED" glib:nick="visited"> <doc xml:space="preserve">The location the widget points to has already been visited. Since 3.12</doc> </member> <member name="checked" value="2048" c:identifier="GTK_STATE_FLAG_CHECKED" glib:nick="checked"> <doc xml:space="preserve">Widget is checked. Since 3.14</doc> </member> <member name="drop_active" value="4096" c:identifier="GTK_STATE_FLAG_DROP_ACTIVE" glib:nick="drop-active"> <doc xml:space="preserve">Widget is highlighted as a drop target for DND. Since 3.20</doc> </member> </bitfield> <enumeration name="StateType" deprecated="1" deprecated-version="3.14" glib:type-name="GtkStateType" glib:get-type="gtk_state_type_get_type" c:type="GtkStateType"> <doc xml:space="preserve">This type indicates the current state of a widget; the state determines how the widget is drawn. The #GtkStateType enumeration is also used to identify different colors in a #GtkStyle for drawing, so states can be used for subparts of a widget as well as entire widgets.</doc> <doc-deprecated xml:space="preserve">All APIs that are using this enumeration have been deprecated in favor of alternatives using #GtkStateFlags.</doc-deprecated> <member name="normal" value="0" c:identifier="GTK_STATE_NORMAL" glib:nick="normal"> <doc xml:space="preserve">State during normal operation.</doc> </member> <member name="active" value="1" c:identifier="GTK_STATE_ACTIVE" glib:nick="active"> <doc xml:space="preserve">State of a currently active widget, such as a depressed button.</doc> </member> <member name="prelight" value="2" c:identifier="GTK_STATE_PRELIGHT" glib:nick="prelight"> <doc xml:space="preserve">State indicating that the mouse pointer is over the widget and the widget will respond to mouse clicks.</doc> </member> <member name="selected" value="3" c:identifier="GTK_STATE_SELECTED" glib:nick="selected"> <doc xml:space="preserve">State of a selected item, such the selected row in a list.</doc> </member> <member name="insensitive" value="4" c:identifier="GTK_STATE_INSENSITIVE" glib:nick="insensitive"> <doc xml:space="preserve">State indicating that the widget is unresponsive to user actions.</doc> </member> <member name="inconsistent" value="5" c:identifier="GTK_STATE_INCONSISTENT" glib:nick="inconsistent"> <doc xml:space="preserve">The widget is inconsistent, such as checkbuttons or radiobuttons that arenât either set to %TRUE nor %FALSE, or buttons requiring the user attention.</doc> </member> <member name="focused" value="6" c:identifier="GTK_STATE_FOCUSED" glib:nick="focused"> <doc xml:space="preserve">The widget has the keyboard focus.</doc> </member> </enumeration> <class name="StatusIcon" c:symbol-prefix="status_icon" c:type="GtkStatusIcon" parent="GObject.Object" glib:type-name="GtkStatusIcon" glib:get-type="gtk_status_icon_get_type" glib:type-struct="StatusIconClass"> <doc xml:space="preserve">The âsystem trayâ or notification area is normally used for transient icons that indicate some special state. For example, a system tray icon might appear to tell the user that they have new mail, or have an incoming instant message, or something along those lines. The basic idea is that creating an icon in the notification area is less annoying than popping up a dialog. A #GtkStatusIcon object can be used to display an icon in a âsystem trayâ. The icon can have a tooltip, and the user can interact with it by activating it or popping up a context menu. It is very important to notice that status icons depend on the existence of a notification area being available to the user; you should not use status icons as the only way to convey critical information regarding your application, as the notification area may not exist on the user's environment, or may have been removed. You should always check that a status icon has been embedded into a notification area by using gtk_status_icon_is_embedded(), and gracefully recover if the function returns %FALSE. On X11, the implementation follows the [FreeDesktop System Tray Specification](http://www.freedesktop.org/wiki/Specifications/systemtray-spec). Implementations of the âtrayâ side of this specification can be found e.g. in the GNOME 2 and KDE panel applications. Note that a GtkStatusIcon is not a widget, but just a #GObject. Making it a widget would be impractical, since the system tray on Windows doesnât allow to embed arbitrary widgets. GtkStatusIcon has been deprecated in 3.14. You should consider using notifications or more modern platform-specific APIs instead. GLib provides the #GNotification API which works well with #GtkApplication on multiple platforms and environments, and should be the preferred mechanism to notify the users of transient status updates. See this [HowDoI](https://wiki.gnome.org/HowDoI/GNotification) for code examples.</doc> <constructor name="new" c:identifier="gtk_status_icon_new" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates an empty status icon object.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </return-value> </constructor> <constructor name="new_from_file" c:identifier="gtk_status_icon_new_from_file" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a status icon displaying the file @filename. The image will be scaled down to fit in the available space in the notification area, if necessary.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </return-value> <parameters> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">a filename</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_gicon" c:identifier="gtk_status_icon_new_from_gicon" version="2.14" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a status icon displaying a #GIcon. If the icon is a themed icon, it will be updated when the theme changes.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </return-value> <parameters> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">a #GIcon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> </parameters> </constructor> <constructor name="new_from_icon_name" c:identifier="gtk_status_icon_new_from_icon_name" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a status icon displaying an icon from the current icon theme. If the current icon theme is changed, the icon will be updated appropriately.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </return-value> <parameters> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">an icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_pixbuf" c:identifier="gtk_status_icon_new_from_pixbuf" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a status icon displaying @pixbuf. The image will be scaled down to fit in the available space in the notification area, if necessary.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </return-value> <parameters> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">a #GdkPixbuf</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </constructor> <constructor name="new_from_stock" c:identifier="gtk_status_icon_new_from_stock" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Creates a status icon displaying a stock icon. Sample stock icon names are #GTK_STOCK_OPEN, #GTK_STOCK_QUIT. You can register your own stock icon names, see gtk_icon_factory_add_default() and gtk_icon_factory_add().</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">a stock icon id</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <function name="position_menu" c:identifier="gtk_status_icon_position_menu" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Menu positioning function to use with gtk_menu_popup() to position @menu aligned to the status icon @user_data.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; notifications do not have menus, but can have buttons, and actions associated with each button</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="menu" transfer-ownership="none"> <doc xml:space="preserve">the #GtkMenu</doc> <type name="Menu" c:type="GtkMenu*"/> </parameter> <parameter name="x" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the x position</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the y position</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="push_in" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">whether the first menu item should be offset (pushed in) to be aligned with the menu popup position (only useful for GtkOptionMenu).</doc> <type name="gboolean" c:type="gboolean*"/> </parameter> <parameter name="user_data" transfer-ownership="none"> <doc xml:space="preserve">the status icon to position the menu on</doc> <type name="StatusIcon" c:type="gpointer"/> </parameter> </parameters> </function> <virtual-method name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="button_press_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventButton" c:type="GdkEventButton*"/> </parameter> </parameters> </virtual-method> <virtual-method name="button_release_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventButton" c:type="GdkEventButton*"/> </parameter> </parameters> </virtual-method> <virtual-method name="popup_menu"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="button" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="activate_time" transfer-ownership="none"> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </virtual-method> <virtual-method name="query_tooltip"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="keyboard_mode" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="tooltip" transfer-ownership="none"> <type name="Tooltip" c:type="GtkTooltip*"/> </parameter> </parameters> </virtual-method> <virtual-method name="scroll_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventScroll" c:type="GdkEventScroll*"/> </parameter> </parameters> </virtual-method> <virtual-method name="size_changed"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="size" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <method name="get_geometry" c:identifier="gtk_status_icon_get_geometry" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Obtains information about the location of the status icon on screen. This information can be used to e.g. position popups like notification bubbles. See gtk_status_icon_position_menu() for a more convenient alternative for positioning menus. Note that some platforms do not allow GTK+ to provide this information, and even on platforms that do allow it, the information is not reliable unless the status icon is embedded in a notification area, see gtk_status_icon_is_embedded().</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function, as the platform is responsible for the presentation of notifications</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the location information has been filled in</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="screen" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the screen, or %NULL if the information is not needed</doc> <type name="Gdk.Screen" c:type="GdkScreen**"/> </parameter> <parameter name="area" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the area occupied by the status icon, or %NULL</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> <parameter name="orientation" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the orientation of the panel in which the status icon is embedded, or %NULL. A panel at the top or bottom of the screen is horizontal, a panel at the left or right is vertical.</doc> <type name="Orientation" c:type="GtkOrientation*"/> </parameter> </parameters> </method> <method name="get_gicon" c:identifier="gtk_status_icon_get_gicon" version="2.14" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Retrieves the #GIcon being displayed by the #GtkStatusIcon. The storage type of the status icon must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_GICON (see gtk_status_icon_get_storage_type()). The caller of this function does not own a reference to the returned #GIcon. If this function fails, @icon is left unchanged;</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the displayed icon, or %NULL if the image is empty</doc> <type name="Gio.Icon" c:type="GIcon*"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_has_tooltip" c:identifier="gtk_status_icon_get_has_tooltip" version="2.16" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the current value of the has-tooltip property. See #GtkStatusIcon:has-tooltip for more information.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">current value of has-tooltip on @status_icon.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_icon_name" c:identifier="gtk_status_icon_get_icon_name" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the name of the icon being displayed by the #GtkStatusIcon. The storage type of the status icon must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_ICON_NAME (see gtk_status_icon_get_storage_type()). The returned string is owned by the #GtkStatusIcon and should not be freed or modified.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">name of the displayed icon, or %NULL if the image is empty.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_pixbuf" c:identifier="gtk_status_icon_get_pixbuf" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the #GdkPixbuf being displayed by the #GtkStatusIcon. The storage type of the status icon must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_PIXBUF (see gtk_status_icon_get_storage_type()). The caller of this function does not own a reference to the returned pixbuf.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the displayed pixbuf, or %NULL if the image is empty.</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_screen" c:identifier="gtk_status_icon_get_screen" version="2.12" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the #GdkScreen associated with @status_icon.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function, as notifications are managed by the platform</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_size" c:identifier="gtk_status_icon_get_size" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the size in pixels that is available for the image. Stock icons and named icons adapt their size automatically if the size of the notification area changes. For other storage types, the size-changed signal can be used to react to size changes. Note that the returned size is only meaningful while the status icon is embedded (see gtk_status_icon_is_embedded()).</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function, as the representation of a notification is left to the platform</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the size that is available for the image</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_stock" c:identifier="gtk_status_icon_get_stock" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the id of the stock icon being displayed by the #GtkStatusIcon. The storage type of the status icon must be %GTK_IMAGE_EMPTY or %GTK_IMAGE_STOCK (see gtk_status_icon_get_storage_type()). The returned string is owned by the #GtkStatusIcon and should not be freed or modified.</doc> <doc-deprecated xml:space="preserve">Use gtk_status_icon_get_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">stock id of the displayed stock icon, or %NULL if the image is empty.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_storage_type" c:identifier="gtk_status_icon_get_storage_type" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the type of representation being used by the #GtkStatusIcon to store image data. If the #GtkStatusIcon has no image data, the return value will be %GTK_IMAGE_EMPTY.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function, and #GNotification only supports #GIcon instances</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the image representation being used</doc> <type name="ImageType" c:type="GtkImageType"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_status_icon_get_title" version="2.18" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the title of this tray icon. See gtk_status_icon_set_title().</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the title of the status icon</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip_markup" c:identifier="gtk_status_icon_get_tooltip_markup" version="2.16" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the contents of the tooltip for @status_icon.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the tooltip text, or %NULL. You should free the returned string with g_free() when done.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip_text" c:identifier="gtk_status_icon_get_tooltip_text" version="2.16" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the contents of the tooltip for @status_icon.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the tooltip text, or %NULL. You should free the returned string with g_free() when done.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_visible" c:identifier="gtk_status_icon_get_visible" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns whether the status icon is visible or not. Note that being visible does not guarantee that the user can actually see the icon, see also gtk_status_icon_is_embedded().</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the status icon is visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="get_x11_window_id" c:identifier="gtk_status_icon_get_x11_window_id" version="2.14" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">This function is only useful on the X11/freedesktop.org platform. It returns a window ID for the widget in the underlying status icon implementation. This is useful for the Galago notification service, which can send a window ID in the protocol in order for the server to position notification windows pointing to a status icon reliably. This function is not intended for other use cases which are more likely to be met by one of the non-X11 specific methods, such as gtk_status_icon_position_menu().</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">An 32 bit unsigned integer identifier for the underlying X11 Window</doc> <type name="guint32" c:type="guint32"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="is_embedded" c:identifier="gtk_status_icon_is_embedded" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns whether the status icon is embedded in a notification area.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the status icon is embedded in a notification area.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> </parameters> </method> <method name="set_from_file" c:identifier="gtk_status_icon_set_from_file" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Makes @status_icon display the file @filename. See gtk_status_icon_new_from_file() for details.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; you can use g_notification_set_icon() to associate a #GIcon with a notification</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">a filename</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_from_gicon" c:identifier="gtk_status_icon_set_from_gicon" version="2.14" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Makes @status_icon display the #GIcon. See gtk_status_icon_new_from_gicon() for details.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; you can use g_notification_set_icon() to associate a #GIcon with a notification</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">a GIcon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> </parameters> </method> <method name="set_from_icon_name" c:identifier="gtk_status_icon_set_from_icon_name" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Makes @status_icon display the icon named @icon_name from the current icon theme. See gtk_status_icon_new_from_icon_name() for details.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; you can use g_notification_set_icon() to associate a #GIcon with a notification</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">an icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_from_pixbuf" c:identifier="gtk_status_icon_set_from_pixbuf" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Makes @status_icon display @pixbuf. See gtk_status_icon_new_from_pixbuf() for details.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; you can use g_notification_set_icon() to associate a #GIcon with a notification</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="pixbuf" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkPixbuf or %NULL</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_from_stock" c:identifier="gtk_status_icon_set_from_stock" version="2.10" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Makes @status_icon display the stock icon with the id @stock_id. See gtk_status_icon_new_from_stock() for details.</doc> <doc-deprecated xml:space="preserve">Use gtk_status_icon_set_from_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">a stock icon id</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_has_tooltip" c:identifier="gtk_status_icon_set_has_tooltip" version="2.16" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the has-tooltip property on @status_icon to @has_tooltip. See #GtkStatusIcon:has-tooltip for more information.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function, but notifications can display an arbitrary amount of text using g_notification_set_body()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="has_tooltip" transfer-ownership="none"> <doc xml:space="preserve">whether or not @status_icon has a tooltip</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_name" c:identifier="gtk_status_icon_set_name" version="2.20" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the name of this tray icon. This should be a string identifying this icon. It is may be used for sorting the icons in the tray and will not be shown to the user.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function, as notifications are associated with a unique application identifier by #GApplication</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_screen" c:identifier="gtk_status_icon_set_screen" version="2.12" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the #GdkScreen where @status_icon is displayed; if the icon is already mapped, it will be unmapped, and then remapped on the new screen.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function, as GTK typically only has one #GdkScreen and notifications are managed by the platform</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_status_icon_set_title" version="2.18" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets the title of this tray icon. This should be a short, human-readable, localized string describing the tray icon. It may be used by tools like screen readers to render the tray icon.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; you should use g_notification_set_title() and g_notification_set_body() to present text inside your notification</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">the title</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_tooltip_markup" c:identifier="gtk_status_icon_set_tooltip_markup" version="2.16" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets @markup as the contents of the tooltip, which is marked up with the [Pango text markup language][PangoMarkupFormat]. This function will take care of setting #GtkStatusIcon:has-tooltip to %TRUE and of the default handler for the #GtkStatusIcon::query-tooltip signal. See also the #GtkStatusIcon:tooltip-markup property and gtk_tooltip_set_markup().</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="markup" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the contents of the tooltip for @status_icon, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_tooltip_text" c:identifier="gtk_status_icon_set_tooltip_text" version="2.16" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets @text as the contents of the tooltip. This function will take care of setting #GtkStatusIcon:has-tooltip to %TRUE and of the default handler for the #GtkStatusIcon::query-tooltip signal. See also the #GtkStatusIcon:tooltip-text property and gtk_tooltip_set_text().</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the contents of the tooltip for @status_icon</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_visible" c:identifier="gtk_status_icon_set_visible" version="2.10" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Shows or hides a status icon.</doc> <doc-deprecated xml:space="preserve">Use #GNotification and #GtkApplication to provide status notifications; there is no direct replacement for this function, as notifications are managed by the platform</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="status_icon" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusIcon</doc> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to show the status icon, %FALSE to hide it</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="embedded" version="2.12" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the statusicon is embedded in a notification area.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="file" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="gicon" version="2.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The #GIcon displayed in the #GtkStatusIcon. For themed icons, the image will be updated automatically if the theme changes.</doc> <type name="Gio.Icon"/> </property> <property name="has-tooltip" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Enables or disables the emission of #GtkStatusIcon::query-tooltip on @status_icon. A value of %TRUE indicates that @status_icon can have a tooltip, in this case the status icon will be queried using #GtkStatusIcon::query-tooltip to determine whether it will provide a tooltip or not. Note that setting this property to %TRUE for the first time will change the event masks of the windows of this status icon to include leave-notify and motion-notify events. This will not be undone when the property is set to %FALSE again. Whether this property is respected is platform dependent. For plain text tooltips, use #GtkStatusIcon:tooltip-text in preference.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="icon-name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="orientation" version="2.12" transfer-ownership="none"> <doc xml:space="preserve">The orientation of the tray in which the statusicon is embedded.</doc> <type name="Orientation"/> </property> <property name="pixbuf" writable="1" transfer-ownership="none"> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="screen" writable="1" transfer-ownership="none"> <type name="Gdk.Screen"/> </property> <property name="size" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="stock" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">Use #GtkStatusIcon:icon-name instead.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="storage-type" transfer-ownership="none"> <type name="ImageType"/> </property> <property name="title" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The title of this tray icon. This should be a short, human-readable, localized string describing the tray icon. It may be used by tools like screen readers to render the tray icon.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="tooltip-markup" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets the text of tooltip to be the given string, which is marked up with the [Pango text markup language][PangoMarkupFormat]. Also see 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. #GtkStatusIcon:has-tooltip will automatically be set to %TRUE and the default handler for the #GtkStatusIcon::query-tooltip signal will take care of displaying the tooltip. On some platforms, embedded markup will be ignored.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="tooltip-text" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets the text of tooltip to be the given string. Also see 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. #GtkStatusIcon:has-tooltip will automatically be set to %TRUE and the default handler for the #GtkStatusIcon::query-tooltip signal will take care of displaying the tooltip. Note that some platforms have limitations on the length of tooltips that they allow on status icons, e.g. Windows only shows the first 64 characters.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="visible" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="StatusIconPrivate" c:type="GtkStatusIconPrivate*"/> </field> <glib:signal name="activate" when="first" action="1" version="2.10"> <doc xml:space="preserve">Gets emitted when the user activates the status icon. If and how status icons can activated is platform-dependent. Unlike most G_SIGNAL_ACTION signals, this signal is meant to be used by applications and should be wrapped by language bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="button-press-event" when="last" version="2.14"> <doc xml:space="preserve">The ::button-press-event signal will be emitted when a button (typically from a mouse) is pressed. Whether this event is emitted is platform-dependent. Use the ::activate and ::popup-menu signals in preference.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventButton which triggered this signal</doc> <type name="Gdk.EventButton"/> </parameter> </parameters> </glib:signal> <glib:signal name="button-release-event" when="last" version="2.14"> <doc xml:space="preserve">The ::button-release-event signal will be emitted when a button (typically from a mouse) is released. Whether this event is emitted is platform-dependent. Use the ::activate and ::popup-menu signals in preference.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventButton which triggered this signal</doc> <type name="Gdk.EventButton"/> </parameter> </parameters> </glib:signal> <glib:signal name="popup-menu" when="first" action="1" version="2.10"> <doc xml:space="preserve">Gets emitted when the user brings up the context menu of the status icon. Whether status icons can have context menus and how these are activated is platform-dependent. The @button and @activate_time parameters should be passed as the last to arguments to gtk_menu_popup(). Unlike most G_SIGNAL_ACTION signals, this signal is meant to be used by applications and should be wrapped by language bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">the button that was pressed, or 0 if the signal is not emitted in response to a button press event</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="activate_time" transfer-ownership="none"> <doc xml:space="preserve">the timestamp of the event that triggered the signal emission</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="query-tooltip" when="last" version="2.16"> <doc xml:space="preserve">Emitted when the hover timeout has expired with the cursor hovering above @status_icon; or emitted when @status_icon got focus in keyboard mode. Using the given coordinates, the signal handler should determine whether a tooltip should be shown for @status_icon. 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. Whether this signal is emitted is platform-dependent. For plain text tooltips, use #GtkStatusIcon:tooltip-text in preference.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tooltip should be shown right now, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x coordinate of the cursor position where the request has been emitted, relative to @status_icon</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y coordinate of the cursor position where the request has been emitted, relative to @status_icon</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="keyboard_mode" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the tooltip was trigged using the keyboard</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip"/> </parameter> </parameters> </glib:signal> <glib:signal name="scroll-event" when="last" version="2.16"> <doc xml:space="preserve">The ::scroll-event signal is emitted when a button in the 4 to 7 range is pressed. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned. Whether this event is emitted is platform-dependent.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventScroll which triggered this signal</doc> <type name="Gdk.EventScroll"/> </parameter> </parameters> </glib:signal> <glib:signal name="size-changed" when="last" version="2.10"> <doc xml:space="preserve">Gets emitted when the size available for the image changes, e.g. because the notification area got resized.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the icon was updated for the new size. Otherwise, GTK+ will scale the icon as necessary.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the new size</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> </class> <record name="StatusIconClass" c:type="GtkStatusIconClass" glib:is-gtype-struct-for="StatusIcon"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </parameter> </parameters> </callback> </field> <field name="popup_menu"> <callback name="popup_menu"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </parameter> <parameter name="button" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="activate_time" transfer-ownership="none"> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </callback> </field> <field name="size_changed"> <callback name="size_changed"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </parameter> <parameter name="size" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="button_press_event"> <callback name="button_press_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventButton" c:type="GdkEventButton*"/> </parameter> </parameters> </callback> </field> <field name="button_release_event"> <callback name="button_release_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventButton" c:type="GdkEventButton*"/> </parameter> </parameters> </callback> </field> <field name="scroll_event"> <callback name="scroll_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventScroll" c:type="GdkEventScroll*"/> </parameter> </parameters> </callback> </field> <field name="query_tooltip"> <callback name="query_tooltip"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="status_icon" transfer-ownership="none"> <type name="StatusIcon" c:type="GtkStatusIcon*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="keyboard_mode" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="tooltip" transfer-ownership="none"> <type name="Tooltip" c:type="GtkTooltip*"/> </parameter> </parameters> </callback> </field> <field name="__gtk_reserved1"> <type name="gpointer" c:type="void*"/> </field> <field name="__gtk_reserved2"> <type name="gpointer" c:type="void*"/> </field> <field name="__gtk_reserved3"> <type name="gpointer" c:type="void*"/> </field> <field name="__gtk_reserved4"> <type name="gpointer" c:type="void*"/> </field> </record> <record name="StatusIconPrivate" c:type="GtkStatusIconPrivate" disguised="1"> </record> <class name="Statusbar" c:symbol-prefix="statusbar" c:type="GtkStatusbar" parent="Box" glib:type-name="GtkStatusbar" glib:get-type="gtk_statusbar_get_type" glib:type-struct="StatusbarClass"> <doc xml:space="preserve">A #GtkStatusbar is usually placed along the bottom of an application's main #GtkWindow. It may provide a regular commentary of the application's status (as is usually the case in a web browser, for example), or may be used to simply output a message when the status changes, (when an upload is complete in an FTP client, for example). Status bars in GTK+ maintain a stack of messages. The message at the top of the each barâs stack is the one that will currently be displayed. Any messages added to a statusbarâs stack must specify a context id that is used to uniquely identify the source of a message. This context id can be generated by gtk_statusbar_get_context_id(), given a message and the statusbar that it will be added to. Note that messages are stored in a stack, and when choosing which message to display, the stack structure is adhered to, regardless of the context identifier of a message. One could say that a statusbar maintains one stack of messages for display purposes, but allows multiple message producers to maintain sub-stacks of the messages they produced (via context ids). Status bars are created using gtk_statusbar_new(). Messages are added to the barâs stack with gtk_statusbar_push(). The message at the top of the stack can be removed using gtk_statusbar_pop(). A message can be removed from anywhere in the stack if its message id was recorded at the time it was added. This is done using gtk_statusbar_remove(). # CSS node GtkStatusbar has a single CSS node with name statusbar.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_statusbar_new"> <doc xml:space="preserve">Creates a new #GtkStatusbar ready for messages.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkStatusbar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="text_popped"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="statusbar" transfer-ownership="none"> <type name="Statusbar" c:type="GtkStatusbar*"/> </instance-parameter> <parameter name="context_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="text" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="text_pushed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="statusbar" transfer-ownership="none"> <type name="Statusbar" c:type="GtkStatusbar*"/> </instance-parameter> <parameter name="context_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="text" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <method name="get_context_id" c:identifier="gtk_statusbar_get_context_id"> <doc xml:space="preserve">Returns a new context identifier, given a description of the actual context. Note that the description is not shown in the UI.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">an integer id</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="statusbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusbar</doc> <type name="Statusbar" c:type="GtkStatusbar*"/> </instance-parameter> <parameter name="context_description" transfer-ownership="none"> <doc xml:space="preserve">textual description of what context the new message is being used in</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_message_area" c:identifier="gtk_statusbar_get_message_area" version="2.20"> <doc xml:space="preserve">Retrieves the box containing the label widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkBox</doc> <type name="Box" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="statusbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusbar</doc> <type name="Statusbar" c:type="GtkStatusbar*"/> </instance-parameter> </parameters> </method> <method name="pop" c:identifier="gtk_statusbar_pop"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="statusbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusbar</doc> <type name="Statusbar" c:type="GtkStatusbar*"/> </instance-parameter> <parameter name="context_id" transfer-ownership="none"> <doc xml:space="preserve">a context identifier</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="push" c:identifier="gtk_statusbar_push"> <doc xml:space="preserve">Pushes a new message onto a statusbarâs stack.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a message id that can be used with gtk_statusbar_remove().</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="statusbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusbar</doc> <type name="Statusbar" c:type="GtkStatusbar*"/> </instance-parameter> <parameter name="context_id" transfer-ownership="none"> <doc xml:space="preserve">the messageâs context id, as returned by gtk_statusbar_get_context_id()</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the message to add to the statusbar</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="remove" c:identifier="gtk_statusbar_remove"> <doc xml:space="preserve">Forces the removal of a message from a statusbarâs stack. The exact @context_id and @message_id must be specified.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="statusbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusbar</doc> <type name="Statusbar" c:type="GtkStatusbar*"/> </instance-parameter> <parameter name="context_id" transfer-ownership="none"> <doc xml:space="preserve">a context identifier</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="message_id" transfer-ownership="none"> <doc xml:space="preserve">a message identifier, as returned by gtk_statusbar_push()</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="remove_all" c:identifier="gtk_statusbar_remove_all" version="2.22"> <doc xml:space="preserve">Forces the removal of all messages from a statusbar's stack with the exact @context_id.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="statusbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStatusbar</doc> <type name="Statusbar" c:type="GtkStatusbar*"/> </instance-parameter> <parameter name="context_id" transfer-ownership="none"> <doc xml:space="preserve">a context identifier</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <field name="parent_widget"> <type name="Box" c:type="GtkBox"/> </field> <field name="priv" readable="0" private="1"> <type name="StatusbarPrivate" c:type="GtkStatusbarPrivate*"/> </field> <glib:signal name="text-popped" when="last"> <doc xml:space="preserve">Is emitted whenever a new message is popped off a statusbar's stack.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context_id" transfer-ownership="none"> <doc xml:space="preserve">the context id of the relevant message/statusbar</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the message that was just popped</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="text-pushed" when="last"> <doc xml:space="preserve">Is emitted whenever a new message gets pushed onto a statusbar's stack.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context_id" transfer-ownership="none"> <doc xml:space="preserve">the context id of the relevant message/statusbar</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the message that was pushed</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> </class> <class name="StatusbarAccessible" c:symbol-prefix="statusbar_accessible" c:type="GtkStatusbarAccessible" parent="ContainerAccessible" glib:type-name="GtkStatusbarAccessible" glib:get-type="gtk_statusbar_accessible_get_type" glib:type-struct="StatusbarAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="StatusbarAccessiblePrivate" c:type="GtkStatusbarAccessiblePrivate*"/> </field> </class> <record name="StatusbarAccessibleClass" c:type="GtkStatusbarAccessibleClass" glib:is-gtype-struct-for="StatusbarAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="StatusbarAccessiblePrivate" c:type="GtkStatusbarAccessiblePrivate" disguised="1"> </record> <record name="StatusbarClass" c:type="GtkStatusbarClass" glib:is-gtype-struct-for="Statusbar"> <field name="parent_class"> <type name="BoxClass" c:type="GtkBoxClass"/> </field> <field name="reserved"> <type name="gpointer" c:type="gpointer"/> </field> <field name="text_pushed"> <callback name="text_pushed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="statusbar" transfer-ownership="none"> <type name="Statusbar" c:type="GtkStatusbar*"/> </parameter> <parameter name="context_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="text" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="text_popped"> <callback name="text_popped"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="statusbar" transfer-ownership="none"> <type name="Statusbar" c:type="GtkStatusbar*"/> </parameter> <parameter name="context_id" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="text" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="StatusbarPrivate" c:type="GtkStatusbarPrivate" disguised="1"> </record> <record name="StockItem" c:type="GtkStockItem" deprecated="1" deprecated-version="3.10"> <field name="stock_id" writable="1"> <doc xml:space="preserve">Identifier.</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="label" writable="1"> <doc xml:space="preserve">User visible label.</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="modifier" writable="1"> <doc xml:space="preserve">Modifier type for keyboard accelerator</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </field> <field name="keyval" writable="1"> <doc xml:space="preserve">Keyboard accelerator</doc> <type name="guint" c:type="guint"/> </field> <field name="translation_domain" writable="1"> <doc xml:space="preserve">Translation domain of the menu or toolbar item</doc> <type name="utf8" c:type="gchar*"/> </field> <method name="copy" c:identifier="gtk_stock_item_copy" introspectable="0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Copies a stock item, mostly useful for language bindings and not in applications.</doc> <return-value> <doc xml:space="preserve">a new #GtkStockItem</doc> <type name="StockItem" c:type="GtkStockItem*"/> </return-value> <parameters> <instance-parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStockItem</doc> <type name="StockItem" c:type="const GtkStockItem*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_stock_item_free" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Frees a stock item allocated on the heap, such as one returned by gtk_stock_item_copy(). Also frees the fields inside the stock item, if they are not %NULL.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStockItem</doc> <type name="StockItem" c:type="GtkStockItem*"/> </instance-parameter> </parameters> </method> </record> <class name="Style" c:symbol-prefix="style" c:type="GtkStyle" parent="GObject.Object" glib:type-name="GtkStyle" glib:get-type="gtk_style_get_type" glib:type-struct="StyleClass"> <doc xml:space="preserve">A #GtkStyle object encapsulates the information that provides the look and feel for a widget. > In GTK+ 3.0, GtkStyle has been deprecated and replaced by > #GtkStyleContext. Each #GtkWidget has an associated #GtkStyle object that is used when rendering that widget. Also, a #GtkStyle holds information for the five possible widget states though not every widget supports all five states; see #GtkStateType. Usually the #GtkStyle for a widget is the same as the default style that is set by GTK+ and modified the theme engine. Usually applications should not need to use or modify the #GtkStyle of their widgets.</doc> <constructor name="new" c:identifier="gtk_style_new" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Creates a new #GtkStyle.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkStyle.</doc> <type name="Style" c:type="GtkStyle*"/> </return-value> </constructor> <virtual-method name="clone" introspectable="0"> <return-value> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="copy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="src" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_arrow"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="arrow_type" transfer-ownership="none"> <type name="ArrowType" c:type="GtkArrowType"/> </parameter> <parameter name="fill" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_box"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_box_gap"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="gap_x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_check"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_diamond"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_expander"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="expander_style" transfer-ownership="none"> <type name="ExpanderStyle" c:type="GtkExpanderStyle"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_extension"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_flat_box"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_handle"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_hline"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="x2" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_layout"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="use_text" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="layout" transfer-ownership="none"> <type name="Pango.Layout" c:type="PangoLayout*"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_option"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_resize_grip"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="edge" transfer-ownership="none"> <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_shadow"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_shadow_gap"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="gap_x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_slider"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_spinner"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_tab"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_vline"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="y1_" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y2_" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="init_from_rc"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="rc_style" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> </parameters> </virtual-method> <virtual-method name="realize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="render_icon" invoker="render_icon" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Renders the icon specified by @source at the given @size according to the given parameters and returns the result in a pixbuf.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_icon_pixbuf() instead</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-created #GdkPixbuf containing the rendered icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">the #GtkIconSource specifying the icon to render</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">a text direction</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the size to render the icon at (#GtkIconSize). A size of `(GtkIconSize)-1` means render at the size of the source and donât scale.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_background" invoker="set_background" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the background of @window to the background color or pixmap specified by @style for the given state.</doc> <doc-deprecated xml:space="preserve">Use gtk_style_context_set_background() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> </parameters> </virtual-method> <virtual-method name="unrealize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> </parameters> </virtual-method> <method name="apply_default_background" c:identifier="gtk_style_apply_default_background" deprecated="1" deprecated-version="3.0"> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="window" transfer-ownership="none"> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="attach" c:identifier="gtk_style_attach" introspectable="0" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Attaches a style to a window; this process allocates the colors and creates the GCâs for the style - it specializes it to a particular visual. The process may involve the creation of a new style if the style has already been attached to a window with a different style and visual. Since this function may return a new object, you have to use it in the following way: `style = gtk_style_attach (style, window)`</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_style_attach() instead</doc-deprecated> <return-value> <doc xml:space="preserve">Either @style, or a newly-created #GtkStyle. If the style is newly created, the style parameter will be unref'ed, and the new style will have a reference count belonging to the caller.</doc> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle.</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="copy" c:identifier="gtk_style_copy" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Creates a copy of the passed in #GtkStyle object.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of @style</doc> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> </parameters> </method> <method name="detach" c:identifier="gtk_style_detach" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Detaches a style from a window. If the style is not attached to any windows anymore, it is unrealized. See gtk_style_attach().</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> </parameters> </method> <method name="get" c:identifier="gtk_style_get" version="2.16" introspectable="0"> <doc xml:space="preserve">Gets the values of a multiple style properties for @widget_type from @style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="widget_type" transfer-ownership="none"> <doc xml:space="preserve">the #GType of a descendant of #GtkWidget</doc> <type name="GType" c:type="GType"/> </parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first style property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">pairs of property names and locations to return the property values, starting with the location for @first_property_name, terminated by %NULL.</doc> <varargs/> </parameter> </parameters> </method> <method name="get_style_property" c:identifier="gtk_style_get_style_property" version="2.16"> <doc xml:space="preserve">Queries the value of a style property corresponding to a widget class is in the given style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="widget_type" transfer-ownership="none"> <doc xml:space="preserve">the #GType of a descendant of #GtkWidget</doc> <type name="GType" c:type="GType"/> </parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the style property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GValue where the value of the property being queried will be stored</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="get_valist" c:identifier="gtk_style_get_valist" version="2.16" introspectable="0"> <doc xml:space="preserve">Non-vararg variant of gtk_style_get(). Used primarily by language bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="widget_type" transfer-ownership="none"> <doc xml:space="preserve">the #GType of a descendant of #GtkWidget</doc> <type name="GType" c:type="GType"/> </parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first style property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">a va_list of pairs of property names and locations to return the property values, starting with the location for @first_property_name.</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="has_context" c:identifier="gtk_style_has_context" version="3.0"> <doc xml:space="preserve">Returns whether @style has an associated #GtkStyleContext.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @style has a #GtkStyleContext</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> </parameters> </method> <method name="lookup_color" c:identifier="gtk_style_lookup_color" version="2.10" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Looks up @color_name in the styleâs logical color mappings, filling in @color and returning %TRUE if found, otherwise returning %FALSE. Do not cache the found mapping, because it depends on the #GtkStyle and might change when a theme switch occurs.</doc> <doc-deprecated xml:space="preserve">Use gtk_style_context_lookup_color() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the mapping was found.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="color_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the logical color to look up</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the #GdkColor to fill in</doc> <type name="Gdk.Color" c:type="GdkColor*"/> </parameter> </parameters> </method> <method name="lookup_icon_set" c:identifier="gtk_style_lookup_icon_set" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Looks up @stock_id in the icon factories associated with @style and the default icon factory, returning an icon set if found, otherwise %NULL.</doc> <doc-deprecated xml:space="preserve">Use gtk_style_context_lookup_icon_set() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">icon set of @stock_id</doc> <type name="IconSet" c:type="GtkIconSet*"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">an icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="render_icon" c:identifier="gtk_style_render_icon" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Renders the icon specified by @source at the given @size according to the given parameters and returns the result in a pixbuf.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_icon_pixbuf() instead</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-created #GdkPixbuf containing the rendered icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">the #GtkIconSource specifying the icon to render</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">a text direction</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the size to render the icon at (#GtkIconSize). A size of `(GtkIconSize)-1` means render at the size of the source and donât scale.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_background" c:identifier="gtk_style_set_background" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the background of @window to the background color or pixmap specified by @style for the given state.</doc> <doc-deprecated xml:space="preserve">Use gtk_style_context_set_background() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> </parameters> </method> <property name="context" writable="1" construct-only="1" transfer-ownership="none"> <type name="StyleContext"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="fg"> <doc xml:space="preserve">Set of foreground #GdkColor</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="bg"> <doc xml:space="preserve">Set of background #GdkColor</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="light"> <doc xml:space="preserve">Set of light #GdkColor</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="dark"> <doc xml:space="preserve">Set of dark #GdkColor</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="mid"> <doc xml:space="preserve">Set of mid #GdkColor</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="text"> <doc xml:space="preserve">Set of text #GdkColor</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="base"> <doc xml:space="preserve">Set of base #GdkColor</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="text_aa"> <doc xml:space="preserve">Color halfway between text/base</doc> <array zero-terminated="0" c:type="GdkColor" fixed-size="5"> <type name="Gdk.Color" c:type="GdkColor"/> </array> </field> <field name="black"> <doc xml:space="preserve">#GdkColor to use for black</doc> <type name="Gdk.Color" c:type="GdkColor"/> </field> <field name="white"> <doc xml:space="preserve">#GdkColor to use for white</doc> <type name="Gdk.Color" c:type="GdkColor"/> </field> <field name="font_desc"> <doc xml:space="preserve">#PangoFontDescription</doc> <type name="Pango.FontDescription" c:type="PangoFontDescription*"/> </field> <field name="xthickness"> <doc xml:space="preserve">Thickness in X direction</doc> <type name="gint" c:type="gint"/> </field> <field name="ythickness"> <doc xml:space="preserve">Thickness in Y direction</doc> <type name="gint" c:type="gint"/> </field> <field name="background"> <doc xml:space="preserve">Set of background #cairo_pattern_t</doc> <array zero-terminated="0" c:type="cairo_pattern_t" fixed-size="5"> <type name="cairo.Pattern" c:type="cairo_pattern_t*"/> </array> </field> <field name="attach_count" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="visual" readable="0" private="1"> <type name="Gdk.Visual" c:type="GdkVisual*"/> </field> <field name="private_font_desc" readable="0" private="1"> <type name="Pango.FontDescription" c:type="PangoFontDescription*"/> </field> <field name="rc_style" readable="0" private="1"> <type name="RcStyle" c:type="GtkRcStyle*"/> </field> <field name="styles" readable="0" private="1"> <type name="GLib.SList" c:type="GSList*"> <type name="gpointer" c:type="gpointer"/> </type> </field> <field name="property_cache" readable="0" private="1"> <array name="GLib.Array" c:type="GArray*"> <type name="gpointer" c:type="gpointer"/> </array> </field> <field name="icon_factories" readable="0" private="1"> <type name="GLib.SList" c:type="GSList*"> <type name="gpointer" c:type="gpointer"/> </type> </field> <glib:signal name="realize" when="first" version="2.4"> <doc xml:space="preserve">Emitted when the style has been initialized for a particular visual. Connecting to this signal is probably seldom useful since most of the time applications and widgets only deal with styles that have been already realized.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="unrealize" when="first" version="2.4"> <doc xml:space="preserve">Emitted when the aspects of the style specific to a particular visual is being cleaned up. A connection to this signal can be useful if a widget wants to cache objects as object data on #GtkStyle. This signal provides a convenient place to free such cached objects.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="StyleClass" c:type="GtkStyleClass" glib:is-gtype-struct-for="Style"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="realize"> <callback name="realize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> </parameters> </callback> </field> <field name="unrealize"> <callback name="unrealize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> </parameters> </callback> </field> <field name="copy"> <callback name="copy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="src" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> </parameters> </callback> </field> <field name="clone" introspectable="0"> <callback name="clone" introspectable="0"> <return-value> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> </parameters> </callback> </field> <field name="init_from_rc"> <callback name="init_from_rc"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="rc_style" transfer-ownership="none"> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> </parameters> </callback> </field> <field name="set_background"> <callback name="set_background"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> </parameters> </callback> </field> <field name="render_icon"> <callback name="render_icon"> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-created #GdkPixbuf containing the rendered icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">the #GtkIconSource specifying the icon to render</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">a text direction</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the size to render the icon at (#GtkIconSize). A size of `(GtkIconSize)-1` means render at the size of the source and donât scale.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="draw_hline"> <callback name="draw_hline"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="x2" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_vline"> <callback name="draw_vline"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="y1_" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y2_" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_shadow"> <callback name="draw_shadow"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_arrow"> <callback name="draw_arrow"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="arrow_type" transfer-ownership="none"> <type name="ArrowType" c:type="GtkArrowType"/> </parameter> <parameter name="fill" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_diamond"> <callback name="draw_diamond"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_box"> <callback name="draw_box"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_flat_box"> <callback name="draw_flat_box"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_check"> <callback name="draw_check"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_option"> <callback name="draw_option"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_tab"> <callback name="draw_tab"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_shadow_gap"> <callback name="draw_shadow_gap"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="gap_x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_box_gap"> <callback name="draw_box_gap"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="gap_x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_extension"> <callback name="draw_extension"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </callback> </field> <field name="draw_focus"> <callback name="draw_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_slider"> <callback name="draw_slider"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </callback> </field> <field name="draw_handle"> <callback name="draw_handle"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </callback> </field> <field name="draw_expander"> <callback name="draw_expander"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="expander_style" transfer-ownership="none"> <type name="ExpanderStyle" c:type="GtkExpanderStyle"/> </parameter> </parameters> </callback> </field> <field name="draw_layout"> <callback name="draw_layout"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="use_text" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="layout" transfer-ownership="none"> <type name="Pango.Layout" c:type="PangoLayout*"/> </parameter> </parameters> </callback> </field> <field name="draw_resize_grip"> <callback name="draw_resize_grip"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="edge" transfer-ownership="none"> <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="draw_spinner"> <callback name="draw_spinner"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved9" introspectable="0"> <callback name="_gtk_reserved9"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved10" introspectable="0"> <callback name="_gtk_reserved10"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved11" introspectable="0"> <callback name="_gtk_reserved11"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="StyleContext" c:symbol-prefix="style_context" c:type="GtkStyleContext" parent="GObject.Object" glib:type-name="GtkStyleContext" glib:get-type="gtk_style_context_get_type" glib:type-struct="StyleContextClass"> <doc xml:space="preserve">#GtkStyleContext is an object that stores styling information affecting a widget defined by #GtkWidgetPath. In order to construct the final style information, #GtkStyleContext queries information from all attached #GtkStyleProviders. Style providers can be either attached explicitly to the context through gtk_style_context_add_provider(), or to the screen through gtk_style_context_add_provider_for_screen(). The resulting style is a combination of all providersâ information in priority order. For GTK+ widgets, any #GtkStyleContext returned by gtk_widget_get_style_context() will already have a #GtkWidgetPath, a #GdkScreen and RTL/LTR information set. The style context will also be updated automatically if any of these settings change on the widget. If you are using the theming layer standalone, you will need to set a widget path and a screen yourself to the created style context through gtk_style_context_set_path() and gtk_style_context_set_screen(), as well as updating the context yourself using gtk_style_context_invalidate() whenever any of the conditions change, such as a change in the #GtkSettings:gtk-theme-name setting or a hierarchy change in the rendered widget. See the âForeign drawingâ example in gtk3-demo. # Style Classes # {#gtkstylecontext-classes} Widgets can add style classes to their context, which can be used to associate different styles by class. The documentation for individual widgets lists which style classes it uses itself, and which style classes may be added by applications to affect their appearance. GTK+ defines macros for a number of style classes. # Style Regions Widgets can also add regions with flags to their context. This feature is deprecated and will be removed in a future GTK+ update. Please use style classes instead. GTK+ defines macros for a number of style regions. # Custom styling in UI libraries and applications If you are developing a library with custom #GtkWidgets that render differently than standard components, you may need to add a #GtkStyleProvider yourself with the %GTK_STYLE_PROVIDER_PRIORITY_FALLBACK priority, either a #GtkCssProvider or a custom object implementing the #GtkStyleProvider interface. This way themes may still attempt to style your UI elements in a different way if needed so. If you are using custom styling on an applications, you probably want then to make your style information prevail to the themeâs, so you must use a #GtkStyleProvider with the %GTK_STYLE_PROVIDER_PRIORITY_APPLICATION priority, keep in mind that the user settings in `XDG_CONFIG_HOME/gtk-3.0/gtk.css` will still take precedence over your changes, as it uses the %GTK_STYLE_PROVIDER_PRIORITY_USER priority.</doc> <constructor name="new" c:identifier="gtk_style_context_new"> <doc xml:space="preserve">Creates a standalone #GtkStyleContext, this style context wonât be attached to any widget, so you may want to call gtk_style_context_set_path() yourself. This function is only useful when using the theming layer separated from GTK+, if you are using #GtkStyleContext to theme #GtkWidgets, use gtk_widget_get_style_context() in order to get a style context ready to theme the widget.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkStyleContext.</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </return-value> </constructor> <function name="add_provider_for_screen" c:identifier="gtk_style_context_add_provider_for_screen" version="3.0"> <doc xml:space="preserve">Adds a global style provider to @screen, which will be used in style construction for all #GtkStyleContexts under @screen. GTK+ uses this to make styling information from #GtkSettings available. Note: If both priorities are the same, A #GtkStyleProvider added through gtk_style_context_add_provider() takes precedence over another added through this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> <parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </parameter> <parameter name="priority" transfer-ownership="none"> <doc xml:space="preserve">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</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </function> <function name="remove_provider_for_screen" c:identifier="gtk_style_context_remove_provider_for_screen" version="3.0"> <doc xml:space="preserve">Removes @provider from the global style providers list in @screen.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> <parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </parameter> </parameters> </function> <function name="reset_widgets" c:identifier="gtk_style_context_reset_widgets" version="3.0"> <doc xml:space="preserve">This function recomputes the styles for all widgets under a particular #GdkScreen. This is useful when some global parameter has changed that affects the appearance of all widgets, because when a widget gets a new style, it will both redraw and recompute any cached information about its appearance. As an example, it is used when the color scheme changes in the related #GtkSettings object.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </function> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </virtual-method> <method name="add_class" c:identifier="gtk_style_context_add_class" version="3.0"> <doc xml:space="preserve">Adds a style class to @context, so posterior calls to gtk_style_context_get() or any of the gtk_render_*() functions will make use of this new class for styling. In the CSS file format, a #GtkEntry defining a âsearchâ class, would be matched by: |[ <!-- language="CSS" --> entry.search { ... } ]| While any widget defining a âsearchâ class would be matched by: |[ <!-- language="CSS" --> .search { ... } ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="class_name" transfer-ownership="none"> <doc xml:space="preserve">class name to use in styling</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_provider" c:identifier="gtk_style_context_add_provider" version="3.0"> <doc xml:space="preserve">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 gtk_style_context_add_provider_for_screen(). Note: If both priorities are the same, a #GtkStyleProvider added through this function takes precedence over another added through gtk_style_context_add_provider_for_screen().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </parameter> <parameter name="priority" transfer-ownership="none"> <doc xml:space="preserve">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</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="add_region" c:identifier="gtk_style_context_add_region" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Adds a region to @context, so posterior calls to gtk_style_context_get() or any of the gtk_render_*() functions will make use of this new region for styling. In the CSS file format, a #GtkTreeView defining a ârowâ region, would be matched by: |[ <!-- language="CSS" --> treeview row { ... } ]| Pseudo-classes are used for matching @flags, so the two following rules: |[ <!-- language="CSS" --> treeview row:nth-child(even) { ... } treeview row:nth-child(odd) { ... } ]| would apply to even and odd rows, respectively. Region names must only contain lowercase letters and â-â, starting always with a lowercase letter.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="region_name" transfer-ownership="none"> <doc xml:space="preserve">region name to use in styling</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags that apply to the region</doc> <type name="RegionFlags" c:type="GtkRegionFlags"/> </parameter> </parameters> </method> <method name="cancel_animations" c:identifier="gtk_style_context_cancel_animations" version="3.0" deprecated="1" deprecated-version="3.6"> <doc xml:space="preserve">Stops all running animations for @region_id and all animatable regions underneath. A %NULL @region_id will stop all ongoing animations in @context, when dealing with a #GtkStyleContext obtained through gtk_widget_get_style_context(), this is normally done for you in all circumstances you would expect all widget to be stopped, so this should be only used in complex widgets with different animatable regions.</doc> <doc-deprecated xml:space="preserve">This function does nothing.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="region_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">animatable region to stop, or %NULL. See gtk_style_context_push_animatable_region()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="get" c:identifier="gtk_style_context_get" version="3.0" introspectable="0"> <doc xml:space="preserve">Retrieves several style property values from @context for a given state. See gtk_style_context_get_property() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the property values for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">property name /return value pairs, followed by %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="get_background_color" c:identifier="gtk_style_context_get_background_color" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Gets the background color for a given state. This function is far less useful than it seems, and it should not be used in newly written code. CSS has no concept of "background color", as a background can be an image, or a gradient, or any other pattern including solid colors. The only reason why you would call gtk_style_context_get_background_color() is to use the returned value to draw the background with it; the correct way to achieve this result is to use gtk_render_background() instead, along with CSS style classes to modify the color to be rendered.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_background() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the color for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the background color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_border" c:identifier="gtk_style_context_get_border" version="3.0"> <doc xml:space="preserve">Gets the border for a given state as a #GtkBorder. See gtk_style_context_get_property() and #GTK_STYLE_PROPERTY_BORDER_WIDTH for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the border for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="border" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the border settings</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </method> <method name="get_border_color" c:identifier="gtk_style_context_get_border_color" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Gets the border color for a given state.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_frame() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the color for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the border color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_color" c:identifier="gtk_style_context_get_color" version="3.0"> <doc xml:space="preserve">Gets the foreground color for a given state. See gtk_style_context_get_property() and #GTK_STYLE_PROPERTY_COLOR for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the color for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the foreground color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_direction" c:identifier="gtk_style_context_get_direction" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the widget direction used for rendering.</doc> <doc-deprecated xml:space="preserve">Use gtk_style_context_get_state() and check for #GTK_STATE_FLAG_DIR_LTR and #GTK_STATE_FLAG_DIR_RTL instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widget direction</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="get_font" c:identifier="gtk_style_context_get_font" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the font description for a given state. The returned object is const and will remain valid until the #GtkStyleContext::changed signal happens.</doc> <doc-deprecated xml:space="preserve">Use gtk_style_context_get() for "font" or subproperties instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #PangoFontDescription for the given state. This object is owned by GTK+ and should not be freed.</doc> <type name="Pango.FontDescription" c:type="const PangoFontDescription*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the font for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> </parameters> </method> <method name="get_frame_clock" c:identifier="gtk_style_context_get_frame_clock" version="3.8"> <doc xml:space="preserve">Returns the #GdkFrameClock to which @context is attached.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GdkFrameClock, or %NULL if @context does not have an attached frame clock.</doc> <type name="Gdk.FrameClock" c:type="GdkFrameClock*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="get_junction_sides" c:identifier="gtk_style_context_get_junction_sides" version="3.0"> <doc xml:space="preserve">Returns the sides where rendered elements connect visually with others.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the junction sides</doc> <type name="JunctionSides" c:type="GtkJunctionSides"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="get_margin" c:identifier="gtk_style_context_get_margin" version="3.0"> <doc xml:space="preserve">Gets the margin for a given state as a #GtkBorder. See gtk_style_property_get() and #GTK_STYLE_PROPERTY_MARGIN for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the border for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="margin" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the margin settings</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </method> <method name="get_padding" c:identifier="gtk_style_context_get_padding" version="3.0"> <doc xml:space="preserve">Gets the padding for a given state as a #GtkBorder. See gtk_style_context_get() and #GTK_STYLE_PROPERTY_PADDING for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the padding for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="padding" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the padding settings</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </method> <method name="get_parent" c:identifier="gtk_style_context_get_parent" version="3.4"> <doc xml:space="preserve">Gets the parent context set via gtk_style_context_set_parent(). See that function for details.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the parent context or %NULL</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="get_path" c:identifier="gtk_style_context_get_path" version="3.0"> <doc xml:space="preserve">Returns the widget path used for style matching.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="get_property" c:identifier="gtk_style_context_get_property" version="3.0"> <doc xml:space="preserve">Gets a style property from @context for the given state. Note that not all CSS properties that are supported by GTK+ can be retrieved in this way, since they may not be representable as #GValue. GTK+ defines macros for a number of properties that can be used with this function. Note that passing a state other than the current state of @context is not recommended unless the style context has been saved with gtk_style_context_save(). When @value is no longer needed, g_value_unset() must be called to free any allocated memory.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="property" transfer-ownership="none"> <doc xml:space="preserve">style property name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the property value for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="full"> <doc xml:space="preserve">return location for the style property value</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="get_scale" c:identifier="gtk_style_context_get_scale" version="3.10"> <doc xml:space="preserve">Returns the scale used for assets.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the scale</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="get_screen" c:identifier="gtk_style_context_get_screen"> <doc xml:space="preserve">Returns the #GdkScreen to which @context is attached.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="get_section" c:identifier="gtk_style_context_get_section"> <doc xml:space="preserve">Queries the location in the CSS where @property was defined for the current @context. Note that the state to be queried is taken from gtk_style_context_get_state(). If the location is not available, %NULL will be returned. The location might not be available for various reasons, such as the property being overridden, @property not naming a supported CSS property or tracking of definitions being disabled for performance reasons. Shorthand CSS properties cannot be queried for a location and will always return %NULL.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">%NULL or the section where a value for @property was defined</doc> <type name="CssSection" c:type="GtkCssSection*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="property" transfer-ownership="none"> <doc xml:space="preserve">style property name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_state" c:identifier="gtk_style_context_get_state" version="3.0"> <doc xml:space="preserve">Returns the state used for style matching. This method should only be used to retrieve the #GtkStateFlags to pass to #GtkStyleContext methods, like gtk_style_context_get_padding(). If you need to retrieve the current state of a #GtkWidget, use gtk_widget_get_state_flags().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the state flags</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="get_style" c:identifier="gtk_style_context_get_style" version="3.0" introspectable="0"> <doc xml:space="preserve">Retrieves several widget style properties from @context according to the current style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">property name /return value pairs, followed by %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="get_style_property" c:identifier="gtk_style_context_get_style_property"> <doc xml:space="preserve">Gets the value for a widget style property. When @value is no longer needed, g_value_unset() must be called to free any allocated memory.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the widget style property</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">Return location for the property value</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="get_style_valist" c:identifier="gtk_style_context_get_style_valist" version="3.0" introspectable="0"> <doc xml:space="preserve">Retrieves several widget style properties from @context according to the current style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="args" transfer-ownership="none"> <doc xml:space="preserve">va_list of property name/return location pairs, followed by %NULL</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="get_valist" c:identifier="gtk_style_context_get_valist" version="3.0" introspectable="0"> <doc xml:space="preserve">Retrieves several style property values from @context for a given state. See gtk_style_context_get_property() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the property values for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="args" transfer-ownership="none"> <doc xml:space="preserve">va_list of property name/return location pairs, followed by %NULL</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="has_class" c:identifier="gtk_style_context_has_class" version="3.0"> <doc xml:space="preserve">Returns %TRUE if @context currently has defined the given class name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @context has @class_name defined</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="class_name" transfer-ownership="none"> <doc xml:space="preserve">a class name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="has_region" c:identifier="gtk_style_context_has_region" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns %TRUE if @context has the region defined. If @flags_return is not %NULL, it is set to the flags affecting the region.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if region is defined</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="region_name" transfer-ownership="none"> <doc xml:space="preserve">a region name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags_return" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for region flags</doc> <type name="RegionFlags" c:type="GtkRegionFlags*"/> </parameter> </parameters> </method> <method name="invalidate" c:identifier="gtk_style_context_invalidate" version="3.0" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Invalidates @context style information, so it will be reconstructed again. It is useful if you modify the @context and need the new information immediately.</doc> <doc-deprecated xml:space="preserve">Style contexts are invalidated automatically.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext.</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="list_classes" c:identifier="gtk_style_context_list_classes" version="3.0"> <doc xml:space="preserve">Returns the list of classes currently defined in @context.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a #GList of strings with the currently defined classes. The contents of the list are owned by GTK+, but you must free the list itself with g_list_free() when you are done with it.</doc> <type name="GLib.List" c:type="GList*"> <type name="utf8"/> </type> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="list_regions" c:identifier="gtk_style_context_list_regions" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the list of regions currently defined in @context.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a #GList of strings with the currently defined regions. The contents of the list are owned by GTK+, but you must free the list itself with g_list_free() when you are done with it.</doc> <type name="GLib.List" c:type="GList*"> <type name="utf8"/> </type> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="lookup_color" c:identifier="gtk_style_context_lookup_color"> <doc xml:space="preserve">Looks up and resolves a color name in the @context color map.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @color_name was found and resolved, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="color_name" transfer-ownership="none"> <doc xml:space="preserve">color name to lookup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">Return location for the looked up color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="lookup_icon_set" c:identifier="gtk_style_context_lookup_icon_set" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up @stock_id in the icon factories associated to @context and the default icon factory, returning an icon set if found, otherwise %NULL.</doc> <doc-deprecated xml:space="preserve">Use gtk_icon_theme_lookup_icon() instead.</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The looked up %GtkIconSet, or %NULL</doc> <type name="IconSet" c:type="GtkIconSet*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">an icon name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="notify_state_change" c:identifier="gtk_style_context_notify_state_change" version="3.0" deprecated="1" deprecated-version="3.6"> <doc xml:space="preserve">Notifies a state change on @context, so if the current style makes use of transition animations, one will be started so all rendered elements under @region_id are animated for state @state being set to value @state_value. The @window parameter is used in order to invalidate the rendered area as the animation runs, so make sure it is the same window that is being rendered on by the gtk_render_*() functions. If @region_id is %NULL, all rendered elements using @context will be affected by this state transition. As a practical example, a #GtkButton notifying a state transition on the prelight state: |[ <!-- language="C" --> gtk_style_context_notify_state_change (context, gtk_widget_get_window (widget), NULL, GTK_STATE_PRELIGHT, button->in_button); ]| Can be handled in the CSS file like this: |[ <!-- language="CSS" --> button { background-color: #f00 } button:hover { background-color: #fff; transition: 200ms linear } ]| This combination will animate the button background from red to white if a pointer enters the button, and back to red if the pointer leaves the button. Note that @state is used when finding the transition parameters, which is why the style places the transition under the :hover pseudo-class.</doc> <doc-deprecated xml:space="preserve">This function does nothing.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="region_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">animatable region to notify on, or %NULL. See gtk_style_context_push_animatable_region()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to trigger transition for</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="state_value" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @state is the state we are changing to, %FALSE if we are changing away from it</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="pop_animatable_region" c:identifier="gtk_style_context_pop_animatable_region" version="3.0" deprecated="1" deprecated-version="3.6"> <doc xml:space="preserve">Pops an animatable region from @context. See gtk_style_context_push_animatable_region().</doc> <doc-deprecated xml:space="preserve">This function does nothing.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="push_animatable_region" c:identifier="gtk_style_context_push_animatable_region" version="3.0" deprecated="1" deprecated-version="3.6"> <doc xml:space="preserve">Pushes an animatable region, so all further gtk_render_*() calls between this call and the following gtk_style_context_pop_animatable_region() will potentially show transition animations for this region if gtk_style_context_notify_state_change() is called for a given state, and the current theme/style defines transition animations for state changes. The @region_id used must be unique in @context so the themes can uniquely identify rendered elements subject to a state transition.</doc> <doc-deprecated xml:space="preserve">This function does nothing.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="region_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">unique identifier for the animatable region</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="remove_class" c:identifier="gtk_style_context_remove_class" version="3.0"> <doc xml:space="preserve">Removes @class_name from @context.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="class_name" transfer-ownership="none"> <doc xml:space="preserve">class name to remove</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="remove_provider" c:identifier="gtk_style_context_remove_provider" version="3.0"> <doc xml:space="preserve">Removes @provider from the style providers list in @context.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </parameter> </parameters> </method> <method name="remove_region" c:identifier="gtk_style_context_remove_region" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Removes a region from @context.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="region_name" transfer-ownership="none"> <doc xml:space="preserve">region name to unset</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="restore" c:identifier="gtk_style_context_restore" version="3.0"> <doc xml:space="preserve">Restores @context state to a previous stage. See gtk_style_context_save().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="save" c:identifier="gtk_style_context_save" version="3.0"> <doc xml:space="preserve">Saves the @context state, so temporary modifications done through gtk_style_context_add_class(), gtk_style_context_remove_class(), gtk_style_context_set_state(), etc. can quickly be reverted in one go through gtk_style_context_restore(). The matching call to gtk_style_context_restore() must be done before GTK returns to the main loop.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> </parameters> </method> <method name="scroll_animations" c:identifier="gtk_style_context_scroll_animations" version="3.0" deprecated="1" deprecated-version="3.6"> <doc xml:space="preserve">This function is analogous to gdk_window_scroll(), and should be called together with it so the invalidation areas for any ongoing animation are scrolled together with it.</doc> <doc-deprecated xml:space="preserve">This function does nothing.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow used previously in gtk_style_context_notify_state_change()</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="dx" transfer-ownership="none"> <doc xml:space="preserve">Amount to scroll in the X axis</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="dy" transfer-ownership="none"> <doc xml:space="preserve">Amount to scroll in the Y axis</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_background" c:identifier="gtk_style_context_set_background" version="3.0" deprecated="1" deprecated-version="3.18"> <doc xml:space="preserve">Sets the background of @window to the background pattern or color specified in @context for its current state.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_background() instead. Note that clients still using this function are now responsible for calling this function again whenever @context is invalidated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="set_direction" c:identifier="gtk_style_context_set_direction" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Sets the reading direction for rendering purposes. If you are using a #GtkStyleContext returned from gtk_widget_get_style_context(), you do not need to call this yourself.</doc> <doc-deprecated xml:space="preserve">Use gtk_style_context_set_state() with #GTK_STATE_FLAG_DIR_LTR and #GTK_STATE_FLAG_DIR_RTL instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the new direction.</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> </parameters> </method> <method name="set_frame_clock" c:identifier="gtk_style_context_set_frame_clock" version="3.8"> <doc xml:space="preserve">Attaches @context to the given frame clock. The frame clock is used for the timing of animations. If you are using a #GtkStyleContext returned from gtk_widget_get_style_context(), you do not need to call this yourself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GdkFrameClock</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="frame_clock" transfer-ownership="none"> <doc xml:space="preserve">a #GdkFrameClock</doc> <type name="Gdk.FrameClock" c:type="GdkFrameClock*"/> </parameter> </parameters> </method> <method name="set_junction_sides" c:identifier="gtk_style_context_set_junction_sides" version="3.0"> <doc xml:space="preserve">Sets the sides where rendered elements (mostly through gtk_render_frame()) will visually connect with other visual elements. This is merely a hint that may or may not be honored by themes. Container widgets are expected to set junction hints as appropriate for their children, so it should not normally be necessary to call this function manually.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="sides" transfer-ownership="none"> <doc xml:space="preserve">sides where rendered elements are visually connected to other elements</doc> <type name="JunctionSides" c:type="GtkJunctionSides"/> </parameter> </parameters> </method> <method name="set_parent" c:identifier="gtk_style_context_set_parent" version="3.4"> <doc xml:space="preserve">Sets the parent style context for @context. The parent style context is used to implement [inheritance](http://www.w3.org/TR/css3-cascade/#inheritance) of properties. If you are using a #GtkStyleContext returned from gtk_widget_get_style_context(), the parent will be set for you.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the new parent or %NULL</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> </parameters> </method> <method name="set_path" c:identifier="gtk_style_context_set_path" version="3.0"> <doc xml:space="preserve">Sets the #GtkWidgetPath used for style matching. As a consequence, the style will be regenerated to match the new given path. If you are using a #GtkStyleContext returned from gtk_widget_get_style_context(), you do not need to call this yourself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> </parameters> </method> <method name="set_scale" c:identifier="gtk_style_context_set_scale" version="3.10"> <doc xml:space="preserve">Sets the scale to use when getting image assets for the style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="scale" transfer-ownership="none"> <doc xml:space="preserve">scale</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_screen" c:identifier="gtk_style_context_set_screen" version="3.0"> <doc xml:space="preserve">Attaches @context to the given screen. The screen is used to add style information from âglobalâ style providers, such as the screens #GtkSettings instance. If you are using a #GtkStyleContext returned from gtk_widget_get_style_context(), you do not need to call this yourself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </method> <method name="set_state" c:identifier="gtk_style_context_set_state" version="3.0"> <doc xml:space="preserve">Sets the state to be used for style matching.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">state to represent</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> </parameters> </method> <method name="state_is_running" c:identifier="gtk_style_context_state_is_running" version="3.0" deprecated="1" deprecated-version="3.6"> <doc xml:space="preserve">Returns %TRUE if there is a transition animation running for the current region (see gtk_style_context_push_animatable_region()). If @progress is not %NULL, the animation progress will be returned there, 0.0 means the state is closest to being unset, while 1.0 means itâs closest to being set. This means transition animation will run from 0 to 1 when @state is being set and from 1 to 0 when itâs being unset.</doc> <doc-deprecated xml:space="preserve">This function always returns %FALSE</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there is a running transition animation for @state.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">a widget state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="progress" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the transition progress</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <method name="to_string" c:identifier="gtk_style_context_to_string" version="3.20"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated string representing @context</doc> <type name="utf8" c:type="char*"/> </return-value> <parameters> <instance-parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </instance-parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">Flags that determine what to print</doc> <type name="StyleContextPrintFlags" c:type="GtkStyleContextPrintFlags"/> </parameter> </parameters> </method> <property name="direction" writable="1" transfer-ownership="none"> <type name="TextDirection"/> </property> <property name="paint-clock" writable="1" transfer-ownership="none"> <type name="Gdk.FrameClock"/> </property> <property name="parent" version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets or gets the style contextâs parent. See gtk_style_context_set_parent() for details.</doc> <type name="StyleContext"/> </property> <property name="screen" writable="1" transfer-ownership="none"> <type name="Gdk.Screen"/> </property> <field name="parent_object"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="StyleContextPrivate" c:type="GtkStyleContextPrivate*"/> </field> <glib:signal name="changed" when="first" version="3.0"> <doc xml:space="preserve">The ::changed signal is emitted when there is a change in the #GtkStyleContext. For a #GtkStyleContext returned by gtk_widget_get_style_context(), the #GtkWidget::style-updated signal/vfunc might be more convenient to use. This signal is useful when using the theming layer standalone.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="StyleContextClass" c:type="GtkStyleContextClass" glib:is-gtype-struct-for="StyleContext"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <bitfield name="StyleContextPrintFlags" glib:type-name="GtkStyleContextPrintFlags" glib:get-type="gtk_style_context_print_flags_get_type" c:type="GtkStyleContextPrintFlags"> <doc xml:space="preserve">Flags that modify the behavior of gtk_style_context_to_string(). New values may be added to this enumeration.</doc> <member name="none" value="0" c:identifier="GTK_STYLE_CONTEXT_PRINT_NONE" glib:nick="none"> </member> <member name="recurse" value="1" c:identifier="GTK_STYLE_CONTEXT_PRINT_RECURSE" glib:nick="recurse"> <doc xml:space="preserve">Print the entire tree of CSS nodes starting at the style context's node</doc> </member> <member name="show_style" value="2" c:identifier="GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE" glib:nick="show-style"> <doc xml:space="preserve">Show the values of the CSS properties for each node</doc> </member> </bitfield> <record name="StyleContextPrivate" c:type="GtkStyleContextPrivate" disguised="1"> </record> <class name="StyleProperties" c:symbol-prefix="style_properties" c:type="GtkStyleProperties" parent="GObject.Object" glib:type-name="GtkStyleProperties" glib:get-type="gtk_style_properties_get_type" glib:type-struct="StylePropertiesClass"> <doc xml:space="preserve">GtkStyleProperties provides the storage for style information that is used by #GtkStyleContext and other #GtkStyleProvider implementations. Before style properties can be stored in GtkStyleProperties, they must be registered with gtk_style_properties_register_property(). Unless you are writing a #GtkStyleProvider implementation, you are unlikely to use this API directly, as gtk_style_context_get() and its variants are the preferred way to access styling information from widget implementations and theming engine implementations should use the APIs provided by #GtkThemingEngine instead. #GtkStyleProperties has been deprecated in GTK 3.16. The CSS machinery does not use it anymore and all users of this object have been deprecated.</doc> <implements name="StyleProvider"/> <constructor name="new" c:identifier="gtk_style_properties_new" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Returns a newly created #GtkStyleProperties</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </return-value> </constructor> <function name="lookup_property" c:identifier="gtk_style_properties_lookup_property" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns %TRUE if a property has been registered, if @pspec or @parse_func are not %NULL, the #GParamSpec and parsing function will be respectively returned.</doc> <doc-deprecated xml:space="preserve">This code could only look up custom properties and those are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the property is registered, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">property name to look up</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parse_func" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the parse function</doc> <type name="StylePropertyParser" c:type="GtkStylePropertyParser*"/> </parameter> <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="none"> <doc xml:space="preserve">return location for the #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="GParamSpec**"/> </parameter> </parameters> </function> <function name="register_property" c:identifier="gtk_style_properties_register_property" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Registers a property so it can be used in the CSS file format. This function is the low-level equivalent of gtk_theming_engine_register_property(), if you are implementing a theming engine, you want to use that function instead.</doc> <doc-deprecated xml:space="preserve">Code should use the default properties provided by CSS.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parse_func" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">parsing function to use, or %NULL</doc> <type name="StylePropertyParser" c:type="GtkStylePropertyParser"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec for the new property</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </function> <method name="clear" c:identifier="gtk_style_properties_clear" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Clears all style information from @props.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> </parameters> </method> <method name="get" c:identifier="gtk_style_properties_get" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Retrieves several style property values from @props for a given state.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the property values for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">property name /return value pairs, followed by %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="get_property" c:identifier="gtk_style_properties_get_property" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Gets a style property from @props for the given state. When done with @value, g_value_unset() needs to be called to free any allocated memory.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the property exists in @props, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="property" transfer-ownership="none"> <doc xml:space="preserve">style property name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the property value for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="full"> <doc xml:space="preserve">return location for the style property value.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="get_valist" c:identifier="gtk_style_properties_get_valist" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Retrieves several style property values from @props for a given state.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the property values for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="args" transfer-ownership="none"> <doc xml:space="preserve">va_list of property name/return location pairs, followed by %NULL</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="lookup_color" c:identifier="gtk_style_properties_lookup_color" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the symbolic color that is mapped to @name.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">The mapped color</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">color name to lookup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="map_color" c:identifier="gtk_style_properties_map_color" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Maps @color so it can be referenced by @name. See gtk_style_properties_lookup_color()</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">color name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">#GtkSymbolicColor to map @name to</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </parameter> </parameters> </method> <method name="merge" c:identifier="gtk_style_properties_merge" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Merges into @props all the style information contained in @props_to_merge. If @replace is %TRUE, the values will be overwritten, if it is %FALSE, the older values will prevail.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="props_to_merge" transfer-ownership="none"> <doc xml:space="preserve">a second #GtkStyleProperties</doc> <type name="StyleProperties" c:type="const GtkStyleProperties*"/> </parameter> <parameter name="replace" transfer-ownership="none"> <doc xml:space="preserve">whether to replace values or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set" c:identifier="gtk_style_properties_set" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Sets several style properties on @props.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to set the values for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">property name/value pairs, followed by %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="set_property" c:identifier="gtk_style_properties_set_property" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Sets a styling property in @props.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="property" transfer-ownership="none"> <doc xml:space="preserve">styling property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to set the value for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">new value for the property</doc> <type name="GObject.Value" c:type="const GValue*"/> </parameter> </parameters> </method> <method name="set_valist" c:identifier="gtk_style_properties_set_valist" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Sets several style properties on @props.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to set the values for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="args" transfer-ownership="none"> <doc xml:space="preserve">va_list of property name/value pairs, followed by %NULL</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="unset_property" c:identifier="gtk_style_properties_unset_property" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Unsets a style property in @props.</doc> <doc-deprecated xml:space="preserve">#GtkStyleProperties are deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="props" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProperties</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </instance-parameter> <parameter name="property" transfer-ownership="none"> <doc xml:space="preserve">property to unset</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to unset</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> </parameters> </method> <field name="parent_object" readable="0" private="1"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="StylePropertiesPrivate" c:type="GtkStylePropertiesPrivate*"/> </field> </class> <record name="StylePropertiesClass" c:type="GtkStylePropertiesClass" glib:is-gtype-struct-for="StyleProperties"> <field name="parent_class" readable="0" private="1"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="StylePropertiesPrivate" c:type="GtkStylePropertiesPrivate" disguised="1"> </record> <callback name="StylePropertyParser" c:type="GtkStylePropertyParser" throws="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="string" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </callback> <interface name="StyleProvider" c:symbol-prefix="style_provider" c:type="GtkStyleProvider" glib:type-name="GtkStyleProvider" glib:get-type="gtk_style_provider_get_type" glib:type-struct="StyleProviderIface"> <doc xml:space="preserve">GtkStyleProvider is an interface used to provide style information to a #GtkStyleContext. See gtk_style_context_add_provider() and gtk_style_context_add_provider_for_screen().</doc> <virtual-method name="get_icon_factory" invoker="get_icon_factory" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the #GtkIconFactory defined to be in use for @path, or %NULL if none is defined.</doc> <doc-deprecated xml:space="preserve">Will always return %NULL for all GTK-provided style providers.</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The icon factory to use for @path, or %NULL</doc> <type name="IconFactory" c:type="GtkIconFactory*"/> </return-value> <parameters> <instance-parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_style" invoker="get_style" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the style settings affecting a widget defined by @path, or %NULL if @provider doesnât contemplate styling @path.</doc> <doc-deprecated xml:space="preserve">Will always return %NULL for all GTK-provided style providers as the interface cannot correctly work the way CSS is specified.</doc-deprecated> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkStyleProperties containing the style settings affecting @path</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </return-value> <parameters> <instance-parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_style_property" invoker="get_style_property" version="3.0"> <doc xml:space="preserve">Looks up a widget style property as defined by @provider for the widget represented by @path.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the property was found and has a value, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to query the style property for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">The #GParamSpec to query</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the property value</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </virtual-method> <method name="get_icon_factory" c:identifier="gtk_style_provider_get_icon_factory" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the #GtkIconFactory defined to be in use for @path, or %NULL if none is defined.</doc> <doc-deprecated xml:space="preserve">Will always return %NULL for all GTK-provided style providers.</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The icon factory to use for @path, or %NULL</doc> <type name="IconFactory" c:type="GtkIconFactory*"/> </return-value> <parameters> <instance-parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> </parameters> </method> <method name="get_style" c:identifier="gtk_style_provider_get_style" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the style settings affecting a widget defined by @path, or %NULL if @provider doesnât contemplate styling @path.</doc> <doc-deprecated xml:space="preserve">Will always return %NULL for all GTK-provided style providers as the interface cannot correctly work the way CSS is specified.</doc-deprecated> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkStyleProperties containing the style settings affecting @path</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </return-value> <parameters> <instance-parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> </parameters> </method> <method name="get_style_property" c:identifier="gtk_style_provider_get_style_property" version="3.0"> <doc xml:space="preserve">Looks up a widget style property as defined by @provider for the widget represented by @path.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the property was found and has a value, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to query the style property for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">The #GParamSpec to query</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the property value</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> </interface> <record name="StyleProviderIface" c:type="GtkStyleProviderIface" glib:is-gtype-struct-for="StyleProvider"> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="get_style"> <callback name="get_style"> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a #GtkStyleProperties containing the style settings affecting @path</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </return-value> <parameters> <parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> </parameters> </callback> </field> <field name="get_style_property"> <callback name="get_style_property"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the property was found and has a value, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to query the style property for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">The #GParamSpec to query</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the property value</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </callback> </field> <field name="get_icon_factory"> <callback name="get_icon_factory"> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The icon factory to use for @path, or %NULL</doc> <type name="IconFactory" c:type="GtkIconFactory*"/> </return-value> <parameters> <parameter name="provider" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleProvider</doc> <type name="StyleProvider" c:type="GtkStyleProvider*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">#GtkWidgetPath to query</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> </parameters> </callback> </field> </record> <class name="Switch" c:symbol-prefix="switch" c:type="GtkSwitch" parent="Widget" glib:type-name="GtkSwitch" glib:get-type="gtk_switch_get_type" glib:type-struct="SwitchClass"> <doc xml:space="preserve">#GtkSwitch is a widget that has two states: on or off. The user can control which state should be active by clicking the empty area, or by dragging the handle. GtkSwitch can also handle situations where the underlying state changes with a delay. See #GtkSwitch::state-set for details. # CSS nodes |[<!-- language="plain" --> switch â°ââ slider ]| GtkSwitch has two css nodes, the main node with the name switch and a subnode named slider. Neither of them is using any style classes.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_switch_new" version="3.0"> <doc xml:space="preserve">Creates a new #GtkSwitch widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the newly created #GtkSwitch instance</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sw" transfer-ownership="none"> <type name="Switch" c:type="GtkSwitch*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="state_set"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sw" transfer-ownership="none"> <type name="Switch" c:type="GtkSwitch*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <method name="get_active" c:identifier="gtk_switch_get_active" version="3.0"> <doc xml:space="preserve">Gets whether the #GtkSwitch is in its âonâ or âoffâ state.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the #GtkSwitch is active, and %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sw" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSwitch</doc> <type name="Switch" c:type="GtkSwitch*"/> </instance-parameter> </parameters> </method> <method name="get_state" c:identifier="gtk_switch_get_state" version="3.14"> <doc xml:space="preserve">Gets the underlying state of the #GtkSwitch.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the underlying state</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sw" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSwitch</doc> <type name="Switch" c:type="GtkSwitch*"/> </instance-parameter> </parameters> </method> <method name="set_active" c:identifier="gtk_switch_set_active" version="3.0"> <doc xml:space="preserve">Changes the state of @sw to the desired one.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sw" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSwitch</doc> <type name="Switch" c:type="GtkSwitch*"/> </instance-parameter> <parameter name="is_active" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @sw should be active, and %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_state" c:identifier="gtk_switch_set_state" version="3.14"> <doc xml:space="preserve">Sets the underlying state of the #GtkSwitch. Normally, this is the same as #GtkSwitch:active, unless the switch is set up for delayed state changes. This function is typically called from a #GtkSwitch::state-set signal handler. See #GtkSwitch::state-set for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sw" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSwitch</doc> <type name="Switch" c:type="GtkSwitch*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the new state</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="active" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the #GtkSwitch widget is in its on or off state.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="state" version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The backend state that is controlled by the switch. See #GtkSwitch::state-set for details.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance" readable="0" private="1"> <type name="Widget" c:type="GtkWidget"/> </field> <field name="priv" readable="0" private="1"> <type name="SwitchPrivate" c:type="GtkSwitchPrivate*"/> </field> <glib:signal name="activate" when="first" action="1"> <doc xml:space="preserve">The ::activate signal on GtkSwitch is an action signal and emitting it causes the switch to animate. Applications should never connect to this signal, but use the notify::active signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="state-set" when="last" version="3.14"> <doc xml:space="preserve">The ::state-set signal on GtkSwitch is emitted to change the underlying state. It is emitted when the user changes the switch position. The default handler keeps the state in sync with the #GtkSwitch:active property. To implement delayed state change, applications can connect to this signal, initiate the change of the underlying state, and call 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 #GtkSwitch:active property is represented by the position of the switch.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop the signal emission</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the new state of the switch</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> </class> <class name="SwitchAccessible" c:symbol-prefix="switch_accessible" c:type="GtkSwitchAccessible" parent="WidgetAccessible" glib:type-name="GtkSwitchAccessible" glib:get-type="gtk_switch_accessible_get_type" glib:type-struct="SwitchAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <field name="parent"> <type name="WidgetAccessible" c:type="GtkWidgetAccessible"/> </field> <field name="priv"> <type name="SwitchAccessiblePrivate" c:type="GtkSwitchAccessiblePrivate*"/> </field> </class> <record name="SwitchAccessibleClass" c:type="GtkSwitchAccessibleClass" glib:is-gtype-struct-for="SwitchAccessible"> <field name="parent_class"> <type name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass"/> </field> </record> <record name="SwitchAccessiblePrivate" c:type="GtkSwitchAccessiblePrivate" disguised="1"> </record> <record name="SwitchClass" c:type="GtkSwitchClass" glib:is-gtype-struct-for="Switch"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="WidgetClass" c:type="GtkWidgetClass"/> </field> <field name="activate"> <callback name="activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sw" transfer-ownership="none"> <type name="Switch" c:type="GtkSwitch*"/> </parameter> </parameters> </callback> </field> <field name="state_set"> <callback name="state_set"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="sw" transfer-ownership="none"> <type name="Switch" c:type="GtkSwitch*"/> </parameter> <parameter name="state" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="_switch_padding_1" introspectable="0"> <callback name="_switch_padding_1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_switch_padding_2" introspectable="0"> <callback name="_switch_padding_2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_switch_padding_3" introspectable="0"> <callback name="_switch_padding_3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_switch_padding_4" introspectable="0"> <callback name="_switch_padding_4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_switch_padding_5" introspectable="0"> <callback name="_switch_padding_5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="SwitchPrivate" c:type="GtkSwitchPrivate" disguised="1"> </record> <record name="SymbolicColor" c:type="GtkSymbolicColor" glib:type-name="GtkSymbolicColor" glib:get-type="gtk_symbolic_color_get_type" c:symbol-prefix="symbolic_color"> <doc xml:space="preserve">GtkSymbolicColor is a boxed type that represents a symbolic color. It is the result of parsing a [color expression][gtkcssprovider-symbolic-colors]. To obtain the color represented by a GtkSymbolicColor, it has to be resolved with gtk_symbolic_color_resolve(), which replaces all symbolic color references by the colors they refer to (in a given context) and evaluates mix, shade and other expressions, resulting in a #GdkRGBA value. It is not normally necessary to deal directly with #GtkSymbolicColors, since they are mostly used behind the scenes by #GtkStyleContext and #GtkCssProvider. #GtkSymbolicColor is deprecated. Symbolic colors are considered an implementation detail of GTK+.</doc> <constructor name="new_alpha" c:identifier="gtk_symbolic_color_new_alpha" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a symbolic color by modifying the relative alpha value of @color. A factor < 1.0 would resolve to a more transparent color, while > 1.0 would resolve to a more opaque color.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </return-value> <parameters> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">another #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </parameter> <parameter name="factor" transfer-ownership="none"> <doc xml:space="preserve">factor to apply to @color alpha</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <constructor name="new_literal" c:identifier="gtk_symbolic_color_new_literal" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a symbolic color pointing to a literal color.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </return-value> <parameters> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRGBA</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </constructor> <constructor name="new_mix" c:identifier="gtk_symbolic_color_new_mix" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a symbolic color defined as a mix of another two colors. a mix factor of 0 would resolve to @color1, while a factor of 1 would resolve to @color2.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </return-value> <parameters> <parameter name="color1" transfer-ownership="none"> <doc xml:space="preserve">color to mix</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </parameter> <parameter name="color2" transfer-ownership="none"> <doc xml:space="preserve">another color to mix</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </parameter> <parameter name="factor" transfer-ownership="none"> <doc xml:space="preserve">mix factor</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <constructor name="new_name" c:identifier="gtk_symbolic_color_new_name" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a symbolic color pointing to an unresolved named color. See gtk_style_context_lookup_color() and gtk_style_properties_lookup_color().</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly created #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">color name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_shade" c:identifier="gtk_symbolic_color_new_shade" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a symbolic color defined as a shade of another color. A factor > 1.0 would resolve to a brighter color, while < 1.0 would resolve to a darker color.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </return-value> <parameters> <parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">another #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </parameter> <parameter name="factor" transfer-ownership="none"> <doc xml:space="preserve">shading factor to apply to @color</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <constructor name="new_win32" c:identifier="gtk_symbolic_color_new_win32" version="3.4" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Creates a symbolic color based on the current win32 theme. Note that while this call is available on all platforms the actual value returned is not reliable on non-win32 platforms.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </return-value> <parameters> <parameter name="theme_class" transfer-ownership="none"> <doc xml:space="preserve">The theme class to pull color from</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="id" transfer-ownership="none"> <doc xml:space="preserve">The color id</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </constructor> <method name="ref" c:identifier="gtk_symbolic_color_ref" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Increases the reference count of @color</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">the same @color</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </return-value> <parameters> <instance-parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </instance-parameter> </parameters> </method> <method name="resolve" c:identifier="gtk_symbolic_color_resolve" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">If @color is resolvable, @resolved_color will be filled in with the resolved color, and %TRUE will be returned. Generally, if @color canât be resolved, it is due to it being defined on top of a named color that doesnât exist in @props. When @props is %NULL, resolving of named colors will fail, so if your @color is or references such a color, this function will return %FALSE.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the color has been resolved</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </instance-parameter> <parameter name="props" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">#GtkStyleProperties to use when resolving named colors, or %NULL</doc> <type name="StyleProperties" c:type="GtkStyleProperties*"/> </parameter> <parameter name="resolved_color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the resolved color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="to_string" c:identifier="gtk_symbolic_color_to_string" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Converts the given @color to a string representation. This is useful both for debugging and for serialization of strings. The format of the string may change between different versions of GTK, but it is guaranteed that the GTK css parser is able to read the string and create the same symbolic color from it.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new string representing @color</doc> <type name="utf8" c:type="char*"/> </return-value> <parameters> <instance-parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">color to convert to a string</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </instance-parameter> </parameters> </method> <method name="unref" c:identifier="gtk_symbolic_color_unref" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Decreases the reference count of @color, freeing its memory if the reference count reaches 0.</doc> <doc-deprecated xml:space="preserve">#GtkSymbolicColor is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="color" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSymbolicColor</doc> <type name="SymbolicColor" c:type="GtkSymbolicColor*"/> </instance-parameter> </parameters> </method> </record> <constant name="TEXT_VIEW_PRIORITY_VALIDATE" value="5" c:type="GTK_TEXT_VIEW_PRIORITY_VALIDATE"> <doc xml:space="preserve">The priority at which the text view validates onscreen lines in an idle job in the background.</doc> <type name="gint" c:type="gint"/> </constant> <constant name="TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID" value="-1" c:type="GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID"> <doc xml:space="preserve">The GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID can be used to make a #GtkTreeSortable use the default sort function. See also gtk_tree_sortable_set_sort_column_id()</doc> <type name="gint" c:type="gint"/> </constant> <constant name="TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID" value="-2" c:type="GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID"> <doc xml:space="preserve">The GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID can be used to make a #GtkTreeSortable use no sorting. See also gtk_tree_sortable_set_sort_column_id()</doc> <type name="gint" c:type="gint"/> </constant> <class name="Table" c:symbol-prefix="table" c:type="GtkTable" parent="Container" glib:type-name="GtkTable" glib:get-type="gtk_table_get_type" glib:type-struct="TableClass"> <doc xml:space="preserve">The #GtkTable functions allow the programmer to arrange widgets in rows and columns, making it easy to align many widgets next to each other, horizontally and vertically. Tables are created with a call to gtk_table_new(), the size of which can later be changed with gtk_table_resize(). Widgets can be added to a table using gtk_table_attach() or the more convenient (but slightly less flexible) gtk_table_attach_defaults(). To alter the space next to a specific row, use gtk_table_set_row_spacing(), and for a column, gtk_table_set_col_spacing(). The gaps between all rows or columns can be changed by calling gtk_table_set_row_spacings() or gtk_table_set_col_spacings() respectively. Note that spacing is added between the children, while padding added by gtk_table_attach() is added on either side of the widget it belongs to. gtk_table_set_homogeneous(), can be used to set whether all cells in the table will resize themselves to the size of the largest widget in the table. > #GtkTable has been deprecated. Use #GtkGrid instead. It provides the same > capabilities as GtkTable for arranging widgets in a rectangular grid, but > does support height-for-width geometry management.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_table_new" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Used to create a new table widget. An initial size must be given by specifying how many rows and columns the table should have, although this can be changed later with gtk_table_resize(). @rows and @columns must both be in the range 1 .. 65535. For historical reasons, 0 is accepted as well and is silently interpreted as 1.</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_new().</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A pointer to the newly created table widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="rows" transfer-ownership="none"> <doc xml:space="preserve">The number of rows the new table should have.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="columns" transfer-ownership="none"> <doc xml:space="preserve">The number of columns the new table should have.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">If set to %TRUE, all table cells are resized to the size of the cell containing the largest widget.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </constructor> <method name="attach" c:identifier="gtk_table_attach" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Adds a widget to a table. The number of âcellsâ that a widget will occupy is specified by @left_attach, @right_attach, @top_attach and @bottom_attach. These each represent the leftmost, rightmost, uppermost and lowest column and row numbers of the table. (Columns and rows are indexed from zero). To make a button occupy the lower right cell of a 2x2 table, use |[ gtk_table_attach (table, button, 1, 2, // left, right attach 1, 2, // top, bottom attach xoptions, yoptions, xpadding, ypadding); ]| If you want to make the button span the entire bottom row, use @left_attach == 0 and @right_attach = 2 instead.</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_attach() with #GtkGrid. Note that the attach arguments differ between those two functions.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTable to add a new widget to.</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">The widget to add.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="left_attach" transfer-ownership="none"> <doc xml:space="preserve">the column number to attach the left side of a child widget to.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="right_attach" transfer-ownership="none"> <doc xml:space="preserve">the column number to attach the right side of a child widget to.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="top_attach" transfer-ownership="none"> <doc xml:space="preserve">the row number to attach the top of a child widget to.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="bottom_attach" transfer-ownership="none"> <doc xml:space="preserve">the row number to attach the bottom of a child widget to.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="xoptions" transfer-ownership="none"> <doc xml:space="preserve">Used to specify the properties of the child widget when the table is resized.</doc> <type name="AttachOptions" c:type="GtkAttachOptions"/> </parameter> <parameter name="yoptions" transfer-ownership="none"> <doc xml:space="preserve">The same as xoptions, except this field determines behaviour of vertical resizing.</doc> <type name="AttachOptions" c:type="GtkAttachOptions"/> </parameter> <parameter name="xpadding" transfer-ownership="none"> <doc xml:space="preserve">An integer value specifying the padding on the left and right of the widget being added to the table.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="ypadding" transfer-ownership="none"> <doc xml:space="preserve">The amount of padding above and below the child widget.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="attach_defaults" c:identifier="gtk_table_attach_defaults" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">As there are many options associated with gtk_table_attach(), this convenience function provides the programmer with a means to add children to a table with identical padding and expansion options. The values used for the #GtkAttachOptions are `GTK_EXPAND | GTK_FILL`, and the padding is set to 0.</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_attach() with #GtkGrid. Note that the attach arguments differ between those two functions.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">The table to add a new child widget to.</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">The child widget to add.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="left_attach" transfer-ownership="none"> <doc xml:space="preserve">The column number to attach the left side of the child widget to.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="right_attach" transfer-ownership="none"> <doc xml:space="preserve">The column number to attach the right side of the child widget to.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="top_attach" transfer-ownership="none"> <doc xml:space="preserve">The row number to attach the top of the child widget to.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="bottom_attach" transfer-ownership="none"> <doc xml:space="preserve">The row number to attach the bottom of the child widget to.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="get_col_spacing" c:identifier="gtk_table_get_col_spacing" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Gets the amount of space between column @col, and column @col + 1. See gtk_table_set_col_spacing().</doc> <doc-deprecated xml:space="preserve">#GtkGrid does not offer a replacement for this functionality.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the column spacing</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">a column in the table, 0 indicates the first column</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="get_default_col_spacing" c:identifier="gtk_table_get_default_col_spacing" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Gets the default column spacing for the table. This is the spacing that will be used for newly added columns. (See gtk_table_set_col_spacings())</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_get_column_spacing() with #GtkGrid.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default column spacing</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> </parameters> </method> <method name="get_default_row_spacing" c:identifier="gtk_table_get_default_row_spacing" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Gets the default row spacing for the table. This is the spacing that will be used for newly added rows. (See gtk_table_set_row_spacings())</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_get_row_spacing() with #GtkGrid.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default row spacing</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> </parameters> </method> <method name="get_homogeneous" c:identifier="gtk_table_get_homogeneous" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Returns whether the table cells are all constrained to the same width and height. (See gtk_table_set_homogeneous ())</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_get_row_homogeneous() and gtk_grid_get_column_homogeneous() with #GtkGrid.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cells are all constrained to the same size</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> </parameters> </method> <method name="get_row_spacing" c:identifier="gtk_table_get_row_spacing" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Gets the amount of space between row @row, and row @row + 1. See gtk_table_set_row_spacing().</doc> <doc-deprecated xml:space="preserve">#GtkGrid does not offer a replacement for this functionality.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the row spacing</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">a row in the table, 0 indicates the first row</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="get_size" c:identifier="gtk_table_get_size" version="2.22" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Gets the number of rows and columns in the table.</doc> <doc-deprecated xml:space="preserve">#GtkGrid does not expose the number of columns and rows.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="rows" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the number of rows, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="columns" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the number of columns, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> <method name="resize" c:identifier="gtk_table_resize" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">If you need to change a tableâs size after it has been created, this function allows you to do so.</doc> <doc-deprecated xml:space="preserve">#GtkGrid resizes automatically.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTable you wish to change the size of.</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="rows" transfer-ownership="none"> <doc xml:space="preserve">The new number of rows.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="columns" transfer-ownership="none"> <doc xml:space="preserve">The new number of columns.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_col_spacing" c:identifier="gtk_table_set_col_spacing" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Alters the amount of space between a given table column and the following column.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_start() and gtk_widget_set_margin_end() on the widgets contained in the row if you need this functionality. #GtkGrid does not support per-row spacing.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable.</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column whose spacing should be changed.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">number of pixels that the spacing should take up.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_col_spacings" c:identifier="gtk_table_set_col_spacings" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the space between every column in @table equal to @spacing.</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_set_column_spacing() with #GtkGrid.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable.</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the number of pixels of space to place between every column in the table.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_homogeneous" c:identifier="gtk_table_set_homogeneous" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Changes the homogenous property of table cells, ie. whether all cells are an equal size or not.</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_set_row_homogeneous() and gtk_grid_set_column_homogeneous() with #GtkGrid.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTable you wish to set the homogeneous properties of.</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">Set to %TRUE to ensure all table cells are the same size. Set to %FALSE if this is not your desired behaviour.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_row_spacing" c:identifier="gtk_table_set_row_spacing" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Changes the space between a given table row and the subsequent row.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_top() and gtk_widget_set_margin_bottom() on the widgets contained in the row if you need this functionality. #GtkGrid does not support per-row spacing.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable containing the row whose properties you wish to change.</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="row" transfer-ownership="none"> <doc xml:space="preserve">row number whose spacing will be changed.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">number of pixels that the spacing should take up.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_row_spacings" c:identifier="gtk_table_set_row_spacings" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the space between every row in @table equal to @spacing.</doc> <doc-deprecated xml:space="preserve">Use gtk_grid_set_row_spacing() with #GtkGrid.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTable.</doc> <type name="Table" c:type="GtkTable*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the number of pixels of space to place between every row in the table.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <property name="column-spacing" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="homogeneous" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="n-columns" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="n-rows" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <property name="row-spacing" writable="1" transfer-ownership="none"> <type name="guint" c:type="guint"/> </property> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="TablePrivate" c:type="GtkTablePrivate*"/> </field> </class> <record name="TableChild" c:type="GtkTableChild"> <field name="widget" writable="1"> <type name="Widget" c:type="GtkWidget*"/> </field> <field name="left_attach" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="right_attach" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="top_attach" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="bottom_attach" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="xpadding" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="ypadding" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="xexpand" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="yexpand" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="xshrink" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="yshrink" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="xfill" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="yfill" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> </record> <record name="TableClass" c:type="GtkTableClass" glib:is-gtype-struct-for="Table"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="TablePrivate" c:type="GtkTablePrivate" disguised="1"> </record> <record name="TableRowCol" c:type="GtkTableRowCol"> <field name="requisition" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="allocation" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="spacing" writable="1"> <type name="guint16" c:type="guint16"/> </field> <field name="need_expand" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="need_shrink" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="expand" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="shrink" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> <field name="empty" writable="1" bits="1"> <type name="guint" c:type="guint"/> </field> </record> <record name="TargetEntry" c:type="GtkTargetEntry" glib:type-name="GtkTargetEntry" glib:get-type="gtk_target_entry_get_type" c:symbol-prefix="target_entry"> <doc xml:space="preserve">A #GtkTargetEntry represents a single type of data than can be supplied for by a widget for a selection or for supplied or received during drag-and-drop.</doc> <field name="target" writable="1"> <doc xml:space="preserve">a string representation of the target type</doc> <type name="utf8" c:type="gchar*"/> </field> <field name="flags" writable="1"> <doc xml:space="preserve">#GtkTargetFlags for DND</doc> <type name="guint" c:type="guint"/> </field> <field name="info" writable="1"> <doc xml:space="preserve">an application-assigned integer ID which will get passed as a parameter to e.g the #GtkWidget::selection-get signal. It allows the application to identify the target type without extensive string compares.</doc> <type name="guint" c:type="guint"/> </field> <constructor name="new" c:identifier="gtk_target_entry_new"> <doc xml:space="preserve">Makes a new #GtkTargetEntry.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a pointer to a new #GtkTargetEntry. Free with gtk_target_entry_free()</doc> <type name="TargetEntry" c:type="GtkTargetEntry*"/> </return-value> <parameters> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">String identifier for target</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">Set of flags, see #GtkTargetFlags</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">an ID that will be passed back to the application</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </constructor> <method name="copy" c:identifier="gtk_target_entry_copy"> <doc xml:space="preserve">Makes a copy of a #GtkTargetEntry and its data.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a pointer to a copy of @data. Free with gtk_target_entry_free()</doc> <type name="TargetEntry" c:type="GtkTargetEntry*"/> </return-value> <parameters> <instance-parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkTargetEntry</doc> <type name="TargetEntry" c:type="GtkTargetEntry*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_target_entry_free"> <doc xml:space="preserve">Frees a #GtkTargetEntry returned from gtk_target_entry_new() or gtk_target_entry_copy().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkTargetEntry.</doc> <type name="TargetEntry" c:type="GtkTargetEntry*"/> </instance-parameter> </parameters> </method> </record> <bitfield name="TargetFlags" glib:type-name="GtkTargetFlags" glib:get-type="gtk_target_flags_get_type" c:type="GtkTargetFlags"> <doc xml:space="preserve">The #GtkTargetFlags enumeration is used to specify constraints on a #GtkTargetEntry.</doc> <member name="same_app" value="1" c:identifier="GTK_TARGET_SAME_APP" glib:nick="same-app"> <doc xml:space="preserve">If this is set, the target will only be selected for drags within a single application.</doc> </member> <member name="same_widget" value="2" c:identifier="GTK_TARGET_SAME_WIDGET" glib:nick="same-widget"> <doc xml:space="preserve">If this is set, the target will only be selected for drags within a single widget.</doc> </member> <member name="other_app" value="4" c:identifier="GTK_TARGET_OTHER_APP" glib:nick="other-app"> <doc xml:space="preserve">If this is set, the target will not be selected for drags within a single application.</doc> </member> <member name="other_widget" value="8" c:identifier="GTK_TARGET_OTHER_WIDGET" glib:nick="other-widget"> <doc xml:space="preserve">If this is set, the target will not be selected for drags withing a single widget.</doc> </member> </bitfield> <record name="TargetList" c:type="GtkTargetList" glib:type-name="GtkTargetList" glib:get-type="gtk_target_list_get_type" c:symbol-prefix="target_list"> <doc xml:space="preserve">A #GtkTargetList-struct is a reference counted list of #GtkTargetPair and should be treated as opaque.</doc> <constructor name="new" c:identifier="gtk_target_list_new"> <doc xml:space="preserve">Creates a new #GtkTargetList from an array of #GtkTargetEntry.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the new #GtkTargetList.</doc> <type name="TargetList" c:type="GtkTargetList*"/> </return-value> <parameters> <parameter name="targets" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Pointer to an array of #GtkTargetEntry</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="ntargets" transfer-ownership="none"> <doc xml:space="preserve">number of entries in @targets.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </constructor> <method name="add" c:identifier="gtk_target_list_add"> <doc xml:space="preserve">Appends another target to a #GtkTargetList.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">the interned atom representing the target</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the flags for this target</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">an ID that will be passed back to the application</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="add_image_targets" c:identifier="gtk_target_list_add_image_targets" version="2.6"> <doc xml:space="preserve">Appends the image targets supported by #GtkSelectionData to the target list. All targets are added with the same @info.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">an ID that will be passed back to the application</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="writable" transfer-ownership="none"> <doc xml:space="preserve">whether to add only targets for which GTK+ knows how to convert a pixbuf into the format</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="add_rich_text_targets" c:identifier="gtk_target_list_add_rich_text_targets" version="2.10"> <doc xml:space="preserve">Appends the rich text targets registered with gtk_text_buffer_register_serialize_format() or gtk_text_buffer_register_deserialize_format() to the target list. All targets are added with the same @info.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">an ID that will be passed back to the application</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="deserializable" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, then deserializable rich text formats will be added, serializable formats otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer.</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </method> <method name="add_table" c:identifier="gtk_target_list_add_table"> <doc xml:space="preserve">Prepends a table of #GtkTargetEntry to a target list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">the table of #GtkTargetEntry</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="ntargets" transfer-ownership="none"> <doc xml:space="preserve">number of targets in the table</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="add_text_targets" c:identifier="gtk_target_list_add_text_targets" version="2.6"> <doc xml:space="preserve">Appends the text targets supported by #GtkSelectionData to the target list. All targets are added with the same @info.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">an ID that will be passed back to the application</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="add_uri_targets" c:identifier="gtk_target_list_add_uri_targets" version="2.6"> <doc xml:space="preserve">Appends the URI targets supported by #GtkSelectionData to the target list. All targets are added with the same @info.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">an ID that will be passed back to the application</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="find" c:identifier="gtk_target_list_find"> <doc xml:space="preserve">Looks up a given target in a #GtkTargetList.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the target was found, otherwise %FALSE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">an interned atom representing the target to search for</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="info" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a pointer to the location to store application info for target, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> <method name="ref" c:identifier="gtk_target_list_ref"> <doc xml:space="preserve">Increases the reference count of a #GtkTargetList by one.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the passed in #GtkTargetList.</doc> <type name="TargetList" c:type="GtkTargetList*"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> </parameters> </method> <method name="remove" c:identifier="gtk_target_list_remove"> <doc xml:space="preserve">Removes a target from a target list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">the interned atom representing the target</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </method> <method name="unref" c:identifier="gtk_target_list_unref"> <doc xml:space="preserve">Decreases the reference count of a #GtkTargetList by one. If the resulting reference count is zero, frees the list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </instance-parameter> </parameters> </method> </record> <record name="TargetPair" c:type="GtkTargetPair"> <doc xml:space="preserve">A #GtkTargetPair is used to represent the same information as a table of #GtkTargetEntry, but in an efficient form.</doc> <field name="target" writable="1"> <doc xml:space="preserve">#GdkAtom representation of the target type</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </field> <field name="flags" writable="1"> <doc xml:space="preserve">#GtkTargetFlags for DND</doc> <type name="guint" c:type="guint"/> </field> <field name="info" writable="1"> <doc xml:space="preserve">an application-assigned integer ID which will get passed as a parameter to e.g the #GtkWidget::selection-get signal. It allows the application to identify the target type without extensive string compares.</doc> <type name="guint" c:type="guint"/> </field> </record> <class name="TearoffMenuItem" c:symbol-prefix="tearoff_menu_item" c:type="GtkTearoffMenuItem" parent="MenuItem" glib:type-name="GtkTearoffMenuItem" glib:get-type="gtk_tearoff_menu_item_get_type" glib:type-struct="TearoffMenuItemClass"> <doc xml:space="preserve">A #GtkTearoffMenuItem is a special #GtkMenuItem which is used to tear off and reattach its menu. When its menu is shown normally, the #GtkTearoffMenuItem is drawn as a dotted line indicating that the menu can be torn off. Activating it causes its menu to be torn off and displayed in its own window as a tearoff menu. When its menu is shown as a tearoff menu, the #GtkTearoffMenuItem is drawn as a dotted line which has a left pointing arrow graphic indicating that the tearoff menu can be reattached. Activating it will erase the tearoff menu window. > #GtkTearoffMenuItem is deprecated and should not be used in newly > written code. Menus are not meant to be torn around.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_tearoff_menu_item_new" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Creates a new #GtkTearoffMenuItem.</doc> <doc-deprecated xml:space="preserve">#GtkTearoffMenuItem is deprecated and should not be used in newly written code.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkTearoffMenuItem.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="menu_item"> <type name="MenuItem" c:type="GtkMenuItem"/> </field> <field name="priv" readable="0" private="1"> <type name="TearoffMenuItemPrivate" c:type="GtkTearoffMenuItemPrivate*"/> </field> </class> <record name="TearoffMenuItemClass" c:type="GtkTearoffMenuItemClass" glib:is-gtype-struct-for="TearoffMenuItem"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="MenuItemClass" c:type="GtkMenuItemClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="TearoffMenuItemPrivate" c:type="GtkTearoffMenuItemPrivate" disguised="1"> </record> <record name="TextAppearance" c:type="GtkTextAppearance"> <field name="bg_color" writable="1"> <doc xml:space="preserve">Background #GdkColor.</doc> <type name="Gdk.Color" c:type="GdkColor"/> </field> <field name="fg_color" writable="1"> <doc xml:space="preserve">Foreground #GdkColor.</doc> <type name="Gdk.Color" c:type="GdkColor"/> </field> <field name="rise" writable="1"> <doc xml:space="preserve">Super/subscript rise, can be negative.</doc> <type name="gint" c:type="gint"/> </field> <field name="underline" writable="1" bits="4"> <doc xml:space="preserve">#PangoUnderline</doc> <type name="guint" c:type="guint"/> </field> <field name="strikethrough" writable="1" bits="1"> <doc xml:space="preserve">Strikethrough style</doc> <type name="guint" c:type="guint"/> </field> <field name="draw_bg" writable="1" bits="1"> <doc xml:space="preserve">Whether to use background-related values; this is irrelevant for the values struct when in a tag, but is used for the composite values struct; itâs true if any of the tags being composited had background stuff set.</doc> <type name="guint" c:type="guint"/> </field> <field name="inside_selection" writable="1" bits="1"> <doc xml:space="preserve">This are only used when we are actually laying out and rendering a paragraph; not when a #GtkTextAppearance is part of a #GtkTextAttributes.</doc> <type name="guint" c:type="guint"/> </field> <field name="is_text" writable="1" bits="1"> <doc xml:space="preserve">This are only used when we are actually laying out and rendering a paragraph; not when a #GtkTextAppearance is part of a #GtkTextAttributes.</doc> <type name="guint" c:type="guint"/> </field> <union> <field name="rgba" writable="1"> <array zero-terminated="0" c:type="GdkRGBA" fixed-size="2"> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </array> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="guint" fixed-size="4"> <type name="guint" c:type="guint"/> </array> </field> </union> </record> <record name="TextAttributes" c:type="GtkTextAttributes" glib:type-name="GtkTextAttributes" glib:get-type="gtk_text_attributes_get_type" c:symbol-prefix="text_attributes"> <doc xml:space="preserve">Using #GtkTextAttributes directly should rarely be necessary. Itâs primarily useful with gtk_text_iter_get_attributes(). As with most GTK+ structs, the fields in this struct should only be read, never modified directly.</doc> <field name="refcount" readable="0" private="1"> <type name="guint" c:type="guint"/> </field> <field name="appearance" writable="1"> <doc xml:space="preserve">#GtkTextAppearance for text.</doc> <type name="TextAppearance" c:type="GtkTextAppearance"/> </field> <field name="justification" writable="1"> <doc xml:space="preserve">#GtkJustification for text.</doc> <type name="Justification" c:type="GtkJustification"/> </field> <field name="direction" writable="1"> <doc xml:space="preserve">#GtkTextDirection for text.</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </field> <field name="font" writable="1"> <doc xml:space="preserve">#PangoFontDescription for text.</doc> <type name="Pango.FontDescription" c:type="PangoFontDescription*"/> </field> <field name="font_scale" writable="1"> <doc xml:space="preserve">Font scale factor.</doc> <type name="gdouble" c:type="gdouble"/> </field> <field name="left_margin" writable="1"> <doc xml:space="preserve">Width of the left margin in pixels.</doc> <type name="gint" c:type="gint"/> </field> <field name="right_margin" writable="1"> <doc xml:space="preserve">Width of the right margin in pixels.</doc> <type name="gint" c:type="gint"/> </field> <field name="indent" writable="1"> <doc xml:space="preserve">Amount to indent the paragraph, in pixels.</doc> <type name="gint" c:type="gint"/> </field> <field name="pixels_above_lines" writable="1"> <doc xml:space="preserve">Pixels of blank space above paragraphs.</doc> <type name="gint" c:type="gint"/> </field> <field name="pixels_below_lines" writable="1"> <doc xml:space="preserve">Pixels of blank space below paragraphs.</doc> <type name="gint" c:type="gint"/> </field> <field name="pixels_inside_wrap" writable="1"> <doc xml:space="preserve">Pixels of blank space between wrapped lines in a paragraph.</doc> <type name="gint" c:type="gint"/> </field> <field name="tabs" writable="1"> <doc xml:space="preserve">Custom #PangoTabArray for this text.</doc> <type name="Pango.TabArray" c:type="PangoTabArray*"/> </field> <field name="wrap_mode" writable="1"> <doc xml:space="preserve">#GtkWrapMode for text.</doc> <type name="WrapMode" c:type="GtkWrapMode"/> </field> <field name="language" writable="1"> <doc xml:space="preserve">#PangoLanguage for text.</doc> <type name="Pango.Language" c:type="PangoLanguage*"/> </field> <field name="pg_bg_color" readable="0" private="1"> <type name="Gdk.Color" c:type="GdkColor*"/> </field> <field name="invisible" writable="1" bits="1"> <doc xml:space="preserve">Hide the text.</doc> <type name="guint" c:type="guint"/> </field> <field name="bg_full_height" writable="1" bits="1"> <doc xml:space="preserve">Background is fit to full line height rather than baseline +/- ascent/descent (font height).</doc> <type name="guint" c:type="guint"/> </field> <field name="editable" writable="1" bits="1"> <doc xml:space="preserve">Can edit this text.</doc> <type name="guint" c:type="guint"/> </field> <field name="no_fallback" writable="1" bits="1"> <doc xml:space="preserve">Whether to disable font fallback.</doc> <type name="guint" c:type="guint"/> </field> <field name="pg_bg_rgba" readable="0" private="1"> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </field> <field name="letter_spacing" writable="1"> <doc xml:space="preserve">Extra space to insert between graphemes, in Pango units</doc> <type name="gint" c:type="gint"/> </field> <union> <field name="font_features" writable="1"> <type name="utf8" c:type="gchar*"/> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="guint" fixed-size="2"> <type name="guint" c:type="guint"/> </array> </field> </union> <constructor name="new" c:identifier="gtk_text_attributes_new"> <doc xml:space="preserve">Creates a #GtkTextAttributes, which describes a set of properties on some text.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkTextAttributes, free with gtk_text_attributes_unref().</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </return-value> </constructor> <method name="copy" c:identifier="gtk_text_attributes_copy"> <doc xml:space="preserve">Copies @src and returns a new #GtkTextAttributes.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of @src, free with gtk_text_attributes_unref()</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </return-value> <parameters> <instance-parameter name="src" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextAttributes to be copied</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </instance-parameter> </parameters> </method> <method name="copy_values" c:identifier="gtk_text_attributes_copy_values"> <doc xml:space="preserve">Copies the values from @src to @dest so that @dest has the same values as @src. Frees existing values in @dest.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="src" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextAttributes</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </instance-parameter> <parameter name="dest" transfer-ownership="none"> <doc xml:space="preserve">another #GtkTextAttributes</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </parameter> </parameters> </method> <method name="ref" c:identifier="gtk_text_attributes_ref"> <doc xml:space="preserve">Increments the reference count on @values.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the #GtkTextAttributes that were passed in</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </return-value> <parameters> <instance-parameter name="values" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextAttributes</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </instance-parameter> </parameters> </method> <method name="unref" c:identifier="gtk_text_attributes_unref"> <doc xml:space="preserve">Decrements the reference count on @values, freeing the structure if the reference count reaches 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="values" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextAttributes</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </instance-parameter> </parameters> </method> </record> <record name="TextBTree" c:type="GtkTextBTree" disguised="1"> </record> <class name="TextBuffer" c:symbol-prefix="text_buffer" c:type="GtkTextBuffer" parent="GObject.Object" glib:type-name="GtkTextBuffer" glib:get-type="gtk_text_buffer_get_type" glib:type-struct="TextBufferClass"> <doc xml:space="preserve">You may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.</doc> <constructor name="new" c:identifier="gtk_text_buffer_new"> <doc xml:space="preserve">Creates a new text buffer.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new text buffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </return-value> <parameters> <parameter name="table" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a tag table, or %NULL to create a new one</doc> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </parameter> </parameters> </constructor> <virtual-method name="apply_tag" invoker="apply_tag"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be tagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be tagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="begin_user_action" invoker="begin_user_action"> <doc xml:space="preserve">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 gtk_text_buffer_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="delete_range"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="start" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="end_user_action" invoker="end_user_action"> <doc xml:space="preserve">Should be paired with a call to gtk_text_buffer_begin_user_action(). See that function for a full explanation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="insert_child_anchor" invoker="insert_child_anchor"> <doc xml:space="preserve">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 gtk_text_buffer_get_slice() and gtk_text_buffer_get_text(). Consider gtk_text_buffer_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location to insert the anchor</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="anchor" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextChildAnchor</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_pixbuf" invoker="insert_pixbuf"> <doc xml:space="preserve">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 pixbufs, but the âtextâ variants do not. e.g. see gtk_text_buffer_get_slice() and gtk_text_buffer_get_text().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location to insert the pixbuf</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">a #GdkPixbuf</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="new_text" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text_length" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="mark_deleted"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="mark" transfer-ownership="none"> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> </parameters> </virtual-method> <virtual-method name="mark_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="location" transfer-ownership="none"> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="mark" transfer-ownership="none"> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> </parameters> </virtual-method> <virtual-method name="modified_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="paste_done"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="clipboard" transfer-ownership="none"> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> </parameters> </virtual-method> <virtual-method name="remove_tag" invoker="remove_tag"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </virtual-method> <method name="add_mark" c:identifier="gtk_text_buffer_add_mark" version="2.12"> <doc xml:space="preserve">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 #GtkTextBuffer::mark-set signal as notification of the mark's initial placement.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">the mark to add</doc> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> <parameter name="where" transfer-ownership="none"> <doc xml:space="preserve">location to place mark</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="add_selection_clipboard" c:identifier="gtk_text_buffer_add_selection_clipboard"> <doc xml:space="preserve">Adds @clipboard to the list of clipboards in which the selection contents of @buffer are available. In most cases, @clipboard will be the #GtkClipboard of type %GDK_SELECTION_PRIMARY for a view of @buffer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> </parameters> </method> <method name="apply_tag" c:identifier="gtk_text_buffer_apply_tag"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be tagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be tagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="apply_tag_by_name" c:identifier="gtk_text_buffer_apply_tag_by_name"> <doc xml:space="preserve">Calls gtk_text_tag_table_lookup() on the bufferâs tag table to get a #GtkTextTag, then calls gtk_text_buffer_apply_tag().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of a named #GtkTextTag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be tagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be tagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="backspace" c:identifier="gtk_text_buffer_backspace" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the buffer was modified</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a position in @buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="interactive" transfer-ownership="none"> <doc xml:space="preserve">whether the deletion is caused by user interaction</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="default_editable" transfer-ownership="none"> <doc xml:space="preserve">whether the buffer is editable by default</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="begin_user_action" c:identifier="gtk_text_buffer_begin_user_action"> <doc xml:space="preserve">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 gtk_text_buffer_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="copy_clipboard" c:identifier="gtk_text_buffer_copy_clipboard"> <doc xml:space="preserve">Copies the currently-selected text to a clipboard.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard object to copy to</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> </parameters> </method> <method name="create_child_anchor" c:identifier="gtk_text_buffer_create_child_anchor"> <doc xml:space="preserve">This is a convenience function which simply creates a child anchor with gtk_text_child_anchor_new() and inserts it into the buffer with gtk_text_buffer_insert_child_anchor(). The new anchor is owned by the buffer; no reference count is returned to the caller of gtk_text_buffer_create_child_anchor().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the created child anchor</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location in the buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="create_mark" c:identifier="gtk_text_buffer_create_mark"> <doc xml:space="preserve">Creates a mark at position @where. If @mark_name is %NULL, the mark is anonymous; otherwise, the mark can be retrieved by name using gtk_text_buffer_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 #GtkTextBuffer::mark-set signal as notification of the mark's initial placement.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkTextMark object</doc> <type name="TextMark" c:type="GtkTextMark*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="mark_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">name for mark, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="where" transfer-ownership="none"> <doc xml:space="preserve">location to place mark</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="left_gravity" transfer-ownership="none"> <doc xml:space="preserve">whether the mark has left gravity</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="create_tag" c:identifier="gtk_text_buffer_create_tag" introspectable="0"> <doc xml:space="preserve">Creates a tag and adds it to the tag table for @buffer. Equivalent to calling gtk_text_tag_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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new tag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="tag_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">name of the new tag, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="first_property_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">name of first property to set, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">%NULL-terminated list of property names and values</doc> <varargs/> </parameter> </parameters> </method> <method name="cut_clipboard" c:identifier="gtk_text_buffer_cut_clipboard"> <doc xml:space="preserve">Copies the currently-selected text to a clipboard, then deletes said text if itâs editable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard object to cut to</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="default_editable" transfer-ownership="none"> <doc xml:space="preserve">default editability of the buffer</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="delete" c:identifier="gtk_text_buffer_delete"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">a position in @buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">another position in @buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="delete_interactive" c:identifier="gtk_text_buffer_delete_interactive"> <doc xml:space="preserve">Deletes all editable text in the given range. Calls gtk_text_buffer_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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether some text was actually deleted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="start_iter" transfer-ownership="none"> <doc xml:space="preserve">start of range to delete</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="end_iter" transfer-ownership="none"> <doc xml:space="preserve">end of range</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="default_editable" transfer-ownership="none"> <doc xml:space="preserve">whether the buffer is editable by default</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="delete_mark" c:identifier="gtk_text_buffer_delete_mark"> <doc xml:space="preserve">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 gtk_text_buffer_add_mark(). Use gtk_text_mark_get_deleted() to find out if a mark has been removed from its buffer. The #GtkTextBuffer::mark-deleted signal will be emitted as notification after the mark is deleted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark in @buffer</doc> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> </parameters> </method> <method name="delete_mark_by_name" c:identifier="gtk_text_buffer_delete_mark_by_name"> <doc xml:space="preserve">Deletes the mark named @name; the mark must exist. See gtk_text_buffer_delete_mark() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of a mark in @buffer</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="delete_selection" c:identifier="gtk_text_buffer_delete_selection"> <doc xml:space="preserve">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).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether there was a non-empty selection to delete</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="interactive" transfer-ownership="none"> <doc xml:space="preserve">whether the deletion is caused by user interaction</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="default_editable" transfer-ownership="none"> <doc xml:space="preserve">whether the buffer is editable by default</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="deserialize" c:identifier="gtk_text_buffer_deserialize" version="2.10" throws="1"> <doc xml:space="preserve">This function deserializes rich text in format @format and inserts it at @iter. @formats to be used must be registered using gtk_text_buffer_register_deserialize_format() or gtk_text_buffer_register_deserialize_tagset() beforehand.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="register_buffer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextBuffer @format is registered with</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="content_buffer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextBuffer to deserialize into</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="format" transfer-ownership="none"> <doc xml:space="preserve">the rich text format to use for deserializing</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">insertion point for the deserialized text</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">data to deserialize</doc> <array length="4" zero-terminated="0" c:type="guint8*"> <type name="guint8" c:type="guint8"/> </array> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">length of @data</doc> <type name="gsize" c:type="gsize"/> </parameter> </parameters> </method> <method name="deserialize_get_can_create_tags" c:identifier="gtk_text_buffer_deserialize_get_can_create_tags" version="2.10"> <doc xml:space="preserve">This functions returns the value set with gtk_text_buffer_deserialize_set_can_create_tags()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether deserializing this format may create tags</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="format" transfer-ownership="none"> <doc xml:space="preserve">a #GdkAtom representing a registered rich text format</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </method> <method name="deserialize_set_can_create_tags" c:identifier="gtk_text_buffer_deserialize_set_can_create_tags" version="2.10"> <doc xml:space="preserve">Use this function to allow a rich text deserialization function to create new tags in the receiving buffer. Note that using this function is almost always a bad idea, because the rich text functions you register should know how to map the rich text format they handler to your text buffers set of tags. The ability of creating new (arbitrary!) tags in the receiving buffer is meant for special rich text formats like the internal one that is registered using gtk_text_buffer_register_deserialize_tagset(), because that format is essentially a dump of the internal structure of the source buffer, including its tag names. You should allow creation of tags only if you know what you are doing, e.g. if you defined a tagset name for your application suiteâs text buffers and you know that itâs fine to receive new tags from these buffers, because you know that your application can handle the newly created tags.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="format" transfer-ownership="none"> <doc xml:space="preserve">a #GdkAtom representing a registered rich text format</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="can_create_tags" transfer-ownership="none"> <doc xml:space="preserve">whether deserializing this format may create tags</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="end_user_action" c:identifier="gtk_text_buffer_end_user_action"> <doc xml:space="preserve">Should be paired with a call to gtk_text_buffer_begin_user_action(). See that function for a full explanation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_bounds" c:identifier="gtk_text_buffer_get_bounds"> <doc xml:space="preserve">Retrieves the first and last iterators in the buffer, i.e. the entire buffer lies within the range [@start,@end).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="start" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize with first position in the buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="end" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize with the end iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_char_count" c:identifier="gtk_text_buffer_get_char_count"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">number of characters in the buffer</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_copy_target_list" c:identifier="gtk_text_buffer_get_copy_target_list" version="2.10"> <doc xml:space="preserve">This function returns the list of targets this text buffer can provide for copying and as DND source. The targets in the list are added with @info values from the #GtkTextBufferTargetInfo enum, using gtk_target_list_add_rich_text_targets() and gtk_target_list_add_text_targets().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_deserialize_formats" c:identifier="gtk_text_buffer_get_deserialize_formats" version="2.10"> <doc xml:space="preserve">This function returns the rich text deserialize formats registered with @buffer using gtk_text_buffer_register_deserialize_format() or gtk_text_buffer_register_deserialize_tagset()</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">an array of #GdkAtoms representing the registered formats.</doc> <array length="0" zero-terminated="0" c:type="GdkAtom*"> <type name="Gdk.Atom" c:type="GdkAtom"/> </array> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="n_formats" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the number of formats</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_end_iter" c:identifier="gtk_text_buffer_get_end_iter"> <doc xml:space="preserve">Initializes @iter with the âend iterator,â one past the last valid character in the text buffer. If dereferenced with gtk_text_iter_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 gtk_text_buffer_get_start_iter() to get character position 0) to the end iterator.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_has_selection" c:identifier="gtk_text_buffer_get_has_selection" version="2.10"> <doc xml:space="preserve">Indicates whether the buffer has some text currently selected.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the there is text selected</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_insert" c:identifier="gtk_text_buffer_get_insert"> <doc xml:space="preserve">Returns the mark that represents the cursor (insertion point). Equivalent to calling gtk_text_buffer_get_mark() to get the mark named âinsertâ, but very slightly more efficient, and involves less typing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">insertion point mark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_iter_at_child_anchor" c:identifier="gtk_text_buffer_get_iter_at_child_anchor"> <doc xml:space="preserve">Obtains the location of @anchor within @buffer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">an iterator to be initialized</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="anchor" transfer-ownership="none"> <doc xml:space="preserve">a child anchor that appears in @buffer</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </parameter> </parameters> </method> <method name="get_iter_at_line" c:identifier="gtk_text_buffer_get_iter_at_line"> <doc xml:space="preserve">Initializes @iter to the start of the given line. If @line_number is greater than the number of lines in the @buffer, the end iterator is returned.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="line_number" transfer-ownership="none"> <doc xml:space="preserve">line number counting from 0</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_iter_at_line_index" c:identifier="gtk_text_buffer_get_iter_at_line_index"> <doc xml:space="preserve">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. Before the 3.20 version, it was not allowed to pass an invalid location. Since the 3.20 version, if @line_number is greater than 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="line_number" transfer-ownership="none"> <doc xml:space="preserve">line number counting from 0</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="byte_index" transfer-ownership="none"> <doc xml:space="preserve">byte index from start of line</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_iter_at_line_offset" c:identifier="gtk_text_buffer_get_iter_at_line_offset"> <doc xml:space="preserve">Obtains an iterator pointing to @char_offset within the given line. Note characters, not bytes; UTF-8 may encode one character as multiple bytes. Before the 3.20 version, it was not allowed to pass an invalid location. Since the 3.20 version, if @line_number is greater than 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="line_number" transfer-ownership="none"> <doc xml:space="preserve">line number counting from 0</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="char_offset" transfer-ownership="none"> <doc xml:space="preserve">char offset from start of line</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_iter_at_mark" c:identifier="gtk_text_buffer_get_iter_at_mark"> <doc xml:space="preserve">Initializes @iter with the current position of @mark.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark in @buffer</doc> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> </parameters> </method> <method name="get_iter_at_offset" c:identifier="gtk_text_buffer_get_iter_at_offset"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="char_offset" transfer-ownership="none"> <doc xml:space="preserve">char offset from start of buffer, counting from 0, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_line_count" c:identifier="gtk_text_buffer_get_line_count"> <doc xml:space="preserve">Obtains the number of lines in the buffer. This value is cached, so the function is very fast.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">number of lines in the buffer</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_mark" c:identifier="gtk_text_buffer_get_mark"> <doc xml:space="preserve">Returns the mark named @name in buffer @buffer, or %NULL if no such mark exists in the buffer.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkTextMark, or %NULL</doc> <type name="TextMark" c:type="GtkTextMark*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">a mark name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_modified" c:identifier="gtk_text_buffer_get_modified"> <doc xml:space="preserve">Indicates whether the buffer has been modified since the last call to gtk_text_buffer_set_modified() set the modification flag to %FALSE. Used for example to enable a âsaveâ function in a text editor.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the buffer has been modified</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_paste_target_list" c:identifier="gtk_text_buffer_get_paste_target_list" version="2.10"> <doc xml:space="preserve">This function returns the list of targets this text buffer supports for pasting and as DND destination. The targets in the list are added with @info values from the #GtkTextBufferTargetInfo enum, using gtk_target_list_add_rich_text_targets() and gtk_target_list_add_text_targets().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_selection_bound" c:identifier="gtk_text_buffer_get_selection_bound"> <doc xml:space="preserve">Returns the mark that represents the selection bound. Equivalent to calling gtk_text_buffer_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. gtk_text_buffer_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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">selection bound mark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_selection_bounds" c:identifier="gtk_text_buffer_get_selection_bounds"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the selection has nonzero length</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="start" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize with selection start</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="end" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize with selection end</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_serialize_formats" c:identifier="gtk_text_buffer_get_serialize_formats" version="2.10"> <doc xml:space="preserve">This function returns the rich text serialize formats registered with @buffer using gtk_text_buffer_register_serialize_format() or gtk_text_buffer_register_serialize_tagset()</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">an array of #GdkAtoms representing the registered formats.</doc> <array length="0" zero-terminated="0" c:type="GdkAtom*"> <type name="Gdk.Atom" c:type="GdkAtom"/> </array> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="n_formats" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the number of formats</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_slice" c:identifier="gtk_text_buffer_get_slice"> <doc xml:space="preserve">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 gtk_text_buffer_get_text(). Note that 0xFFFC can occur in normal text as well, so it is not a reliable indicator that a pixbuf or widget is in the buffer.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">an allocated UTF-8 string</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">start of a range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">end of a range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="include_hidden_chars" transfer-ownership="none"> <doc xml:space="preserve">whether to include invisible text</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="get_start_iter" c:identifier="gtk_text_buffer_get_start_iter"> <doc xml:space="preserve">Initialized @iter with the first position in the text buffer. This is the same as using gtk_text_buffer_get_iter_at_offset() to get the iter at character offset 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">iterator to initialize</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_tag_table" c:identifier="gtk_text_buffer_get_tag_table"> <doc xml:space="preserve">Get the #GtkTextTagTable associated with this buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the bufferâs tag table</doc> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> </parameters> </method> <method name="get_text" c:identifier="gtk_text_buffer_get_text"> <doc xml:space="preserve">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 gtk_text_buffer_get_slice().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">an allocated UTF-8 string</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">start of a range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">end of a range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="include_hidden_chars" transfer-ownership="none"> <doc xml:space="preserve">whether to include invisible text</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="insert" c:identifier="gtk_text_buffer_insert"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a position in the buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text in UTF-8 format</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of text in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="insert_at_cursor" c:identifier="gtk_text_buffer_insert_at_cursor"> <doc xml:space="preserve">Simply calls gtk_text_buffer_insert(), using the current cursor position as the insertion point.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text in UTF-8 format</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of text, in bytes</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="insert_child_anchor" c:identifier="gtk_text_buffer_insert_child_anchor"> <doc xml:space="preserve">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 gtk_text_buffer_get_slice() and gtk_text_buffer_get_text(). Consider gtk_text_buffer_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location to insert the anchor</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="anchor" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextChildAnchor</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </parameter> </parameters> </method> <method name="insert_interactive" c:identifier="gtk_text_buffer_insert_interactive"> <doc xml:space="preserve">Like gtk_text_buffer_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 gtk_text_view_get_editable() is appropriate here.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether text was actually inserted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a position in @buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">some UTF-8 text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of text in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="default_editable" transfer-ownership="none"> <doc xml:space="preserve">default editability of buffer</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="insert_interactive_at_cursor" c:identifier="gtk_text_buffer_insert_interactive_at_cursor"> <doc xml:space="preserve">Calls gtk_text_buffer_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 gtk_text_view_get_editable() is appropriate here.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether text was actually inserted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text in UTF-8 format</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of text in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="default_editable" transfer-ownership="none"> <doc xml:space="preserve">default editability of buffer</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="insert_markup" c:identifier="gtk_text_buffer_insert_markup" version="3.16"> <doc xml:space="preserve">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 #GtkTextBuffer::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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location to insert the markup</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="markup" transfer-ownership="none"> <doc xml:space="preserve">a nul-terminated UTF-8 string containing [Pango markup][PangoMarkupFormat]</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of @markup in bytes, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="insert_pixbuf" c:identifier="gtk_text_buffer_insert_pixbuf"> <doc xml:space="preserve">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 pixbufs, but the âtextâ variants do not. e.g. see gtk_text_buffer_get_slice() and gtk_text_buffer_get_text().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location to insert the pixbuf</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">a #GdkPixbuf</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="insert_range" c:identifier="gtk_text_buffer_insert_range"> <doc xml:space="preserve">Copies text, tags, and pixbufs between @start and @end (the order of @start and @end doesnât matter) and inserts the copy at @iter. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a position in @buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">a position in a #GtkTextBuffer</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">another position in the same buffer as @start</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="insert_range_interactive" c:identifier="gtk_text_buffer_insert_range_interactive"> <doc xml:space="preserve">Same as gtk_text_buffer_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 gtk_text_view_get_editable() is appropriate here.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether an insertion was possible at @iter</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a position in @buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">a position in a #GtkTextBuffer</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">another position in the same buffer as @start</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="default_editable" transfer-ownership="none"> <doc xml:space="preserve">default editability of the buffer</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="insert_with_tags" c:identifier="gtk_text_buffer_insert_with_tags" introspectable="0"> <doc xml:space="preserve">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 gtk_text_buffer_insert(), then gtk_text_buffer_apply_tag() on the inserted text; gtk_text_buffer_insert_with_tags() is just a convenience function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator in @buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">UTF-8 text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of @text, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="first_tag" transfer-ownership="none"> <doc xml:space="preserve">first tag to apply to @text</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">%NULL-terminated list of tags to apply</doc> <varargs/> </parameter> </parameters> </method> <method name="insert_with_tags_by_name" c:identifier="gtk_text_buffer_insert_with_tags_by_name" introspectable="0"> <doc xml:space="preserve">Same as gtk_text_buffer_insert_with_tags(), but allows you to pass in tag names instead of tag objects.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">position in @buffer</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">UTF-8 text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of @text, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="first_tag_name" transfer-ownership="none"> <doc xml:space="preserve">name of a tag to apply to @text</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">more tag names</doc> <varargs/> </parameter> </parameters> </method> <method name="move_mark" c:identifier="gtk_text_buffer_move_mark"> <doc xml:space="preserve">Moves @mark to the new location @where. Emits the #GtkTextBuffer::mark-set signal as notification of the move.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> <parameter name="where" transfer-ownership="none"> <doc xml:space="preserve">new location for @mark in @buffer</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="move_mark_by_name" c:identifier="gtk_text_buffer_move_mark_by_name"> <doc xml:space="preserve">Moves the mark named @name (which must exist) to location @where. See gtk_text_buffer_move_mark() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of a mark</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="where" transfer-ownership="none"> <doc xml:space="preserve">new location for mark</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="paste_clipboard" c:identifier="gtk_text_buffer_paste_clipboard"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard to paste from</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> <parameter name="override_location" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">location to insert pasted text, or %NULL</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="default_editable" transfer-ownership="none"> <doc xml:space="preserve">whether the buffer is editable by default</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="place_cursor" c:identifier="gtk_text_buffer_place_cursor"> <doc xml:space="preserve">This function moves the âinsertâ and âselection_boundâ marks simultaneously. If you move them to the same place in two steps with gtk_text_buffer_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="where" transfer-ownership="none"> <doc xml:space="preserve">where to put the cursor</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="register_deserialize_format" c:identifier="gtk_text_buffer_register_deserialize_format" version="2.10"> <doc xml:space="preserve">This function registers a rich text deserialization @function along with its @mime_type with the passed @buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkAtom that corresponds to the newly registered formatâs mime-type.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="mime_type" transfer-ownership="none"> <doc xml:space="preserve">the formatâs mime-type</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="function" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">the deserialize function to register</doc> <type name="TextBufferDeserializeFunc" c:type="GtkTextBufferDeserializeFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">@functionâs user_data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="user_data_destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">a function to call when @user_data is no longer needed</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="register_deserialize_tagset" c:identifier="gtk_text_buffer_register_deserialize_tagset" version="2.10"> <doc xml:space="preserve">This function registers GTK+âs internal rich text serialization format with the passed @buffer. See gtk_text_buffer_register_serialize_tagset() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkAtom that corresponds to the newly registered formatâs mime-type.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="tagset_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an optional tagset name, on %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="register_serialize_format" c:identifier="gtk_text_buffer_register_serialize_format" version="2.10"> <doc xml:space="preserve">This function registers a rich text serialization @function along with its @mime_type with the passed @buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkAtom that corresponds to the newly registered formatâs mime-type.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="mime_type" transfer-ownership="none"> <doc xml:space="preserve">the formatâs mime-type</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="function" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">the serialize function to register</doc> <type name="TextBufferSerializeFunc" c:type="GtkTextBufferSerializeFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">@functionâs user_data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="user_data_destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">a function to call when @user_data is no longer needed</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="register_serialize_tagset" c:identifier="gtk_text_buffer_register_serialize_tagset" version="2.10"> <doc xml:space="preserve">This function registers GTK+âs internal rich text serialization format with the passed @buffer. The internal format does not comply to any standard rich text format and only works between #GtkTextBuffer instances. It is capable of serializing all of a text bufferâs tags and embedded pixbufs. This function is just a wrapper around gtk_text_buffer_register_serialize_format(). The mime type used for registering is âapplication/x-gtk-text-buffer-rich-textâ, or âapplication/x-gtk-text-buffer-rich-text;format=@tagset_nameâ if a @tagset_name was passed. The @tagset_name can be used to restrict the transfer of rich text to buffers with compatible sets of tags, in order to avoid unknown tags from being pasted. It is probably the common case to pass an identifier != %NULL here, since the %NULL tagset requires the receiving buffer to deal with with pasting of arbitrary tags.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkAtom that corresponds to the newly registered formatâs mime-type.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="tagset_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an optional tagset name, on %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="remove_all_tags" c:identifier="gtk_text_buffer_remove_all_tags"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="remove_selection_clipboard" c:identifier="gtk_text_buffer_remove_selection_clipboard"> <doc xml:space="preserve">Removes a #GtkClipboard added with gtk_text_buffer_add_selection_clipboard().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">a #GtkClipboard added to @buffer by gtk_text_buffer_add_selection_clipboard()</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> </parameters> </method> <method name="remove_tag" c:identifier="gtk_text_buffer_remove_tag"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="remove_tag_by_name" c:identifier="gtk_text_buffer_remove_tag_by_name"> <doc xml:space="preserve">Calls gtk_text_tag_table_lookup() on the bufferâs tag table to get a #GtkTextTag, then calls gtk_text_buffer_remove_tag().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of a #GtkTextTag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="select_range" c:identifier="gtk_text_buffer_select_range" version="2.4"> <doc xml:space="preserve">This function moves the âinsertâ and âselection_boundâ marks simultaneously. If you move them in two steps with gtk_text_buffer_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="ins" transfer-ownership="none"> <doc xml:space="preserve">where to put the âinsertâ mark</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="bound" transfer-ownership="none"> <doc xml:space="preserve">where to put the âselection_boundâ mark</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="serialize" c:identifier="gtk_text_buffer_serialize" version="2.10"> <doc xml:space="preserve">This function serializes the portion of text between @start and @end in the rich text format represented by @format. @formats to be used must be registered using gtk_text_buffer_register_serialize_format() or gtk_text_buffer_register_serialize_tagset() beforehand.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the serialized data, encoded as @format</doc> <array length="4" zero-terminated="0" c:type="guint8*"> <type name="guint8" c:type="guint8"/> </array> </return-value> <parameters> <instance-parameter name="register_buffer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextBuffer @format is registered with</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="content_buffer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextBuffer to serialize</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="format" transfer-ownership="none"> <doc xml:space="preserve">the rich text format to use for serializing</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">start of block of text to serialize</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">end of block of test to serialize</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="length" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the length of the serialized data</doc> <type name="gsize" c:type="gsize*"/> </parameter> </parameters> </method> <method name="set_modified" c:identifier="gtk_text_buffer_set_modified"> <doc xml:space="preserve">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 toggled on the modified bit again. When the modified bit flips, the buffer emits the #GtkTextBuffer::modified-changed signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">modification flag setting</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_text" c:identifier="gtk_text_buffer_set_text"> <doc xml:space="preserve">Deletes current contents of @buffer, and inserts @text instead. If @len is -1, @text must be nul-terminated. @text must be valid UTF-8.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">UTF-8 text to insert</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of @text in bytes</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="unregister_deserialize_format" c:identifier="gtk_text_buffer_unregister_deserialize_format" version="2.10"> <doc xml:space="preserve">This function unregisters a rich text format that was previously registered using gtk_text_buffer_register_deserialize_format() or gtk_text_buffer_register_deserialize_tagset().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="format" transfer-ownership="none"> <doc xml:space="preserve">a #GdkAtom representing a registered rich text format.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </method> <method name="unregister_serialize_format" c:identifier="gtk_text_buffer_unregister_serialize_format" version="2.10"> <doc xml:space="preserve">This function unregisters a rich text format that was previously registered using gtk_text_buffer_register_serialize_format() or gtk_text_buffer_register_serialize_tagset()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </instance-parameter> <parameter name="format" transfer-ownership="none"> <doc xml:space="preserve">a #GdkAtom representing a registered rich text format.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </method> <property name="copy-target-list" version="2.10" transfer-ownership="none"> <doc xml:space="preserve">The list of targets this buffer supports for clipboard copying and as DND source.</doc> <type name="TargetList"/> </property> <property name="cursor-position" version="2.10" transfer-ownership="none"> <doc xml:space="preserve">The position of the insert mark (as offset from the beginning of the buffer). It is useful for getting notified when the cursor moves.</doc> <type name="gint" c:type="gint"/> </property> <property name="has-selection" version="2.10" transfer-ownership="none"> <doc xml:space="preserve">Whether the buffer has some text currently selected.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="paste-target-list" version="2.10" transfer-ownership="none"> <doc xml:space="preserve">The list of targets this buffer supports for clipboard pasting and as DND destination.</doc> <type name="TargetList"/> </property> <property name="tag-table" writable="1" construct-only="1" transfer-ownership="none"> <type name="TextTagTable"/> </property> <property name="text" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The text content of the buffer. Without child widgets and images, see gtk_text_buffer_get_text() for more information.</doc> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="TextBufferPrivate" c:type="GtkTextBufferPrivate*"/> </field> <glib:signal name="apply-tag" when="last"> <doc xml:space="preserve">The ::apply-tag signal is 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: gtk_text_buffer_apply_tag(), gtk_text_buffer_insert_with_tags(), gtk_text_buffer_insert_range().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">the applied tag</doc> <type name="TextTag"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">the start of the range the tag is applied to</doc> <type name="TextIter"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">the end of the range the tag is applied to</doc> <type name="TextIter"/> </parameter> </parameters> </glib:signal> <glib:signal name="begin-user-action" when="last"> <doc xml:space="preserve">The ::begin-user-action signal is emitted at the beginning of a single user-visible operation on a #GtkTextBuffer. See also: gtk_text_buffer_begin_user_action(), gtk_text_buffer_insert_interactive(), gtk_text_buffer_insert_range_interactive(), gtk_text_buffer_delete_interactive(), gtk_text_buffer_backspace(), gtk_text_buffer_delete_selection().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="changed" when="last"> <doc xml:space="preserve">The ::changed signal is emitted when the content of a #GtkTextBuffer has changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="delete-range" when="last"> <doc xml:space="preserve">The ::delete-range signal is 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: gtk_text_buffer_delete().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">the start of the range to be deleted</doc> <type name="TextIter"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">the end of the range to be deleted</doc> <type name="TextIter"/> </parameter> </parameters> </glib:signal> <glib:signal name="end-user-action" when="last"> <doc xml:space="preserve">The ::end-user-action signal is emitted at the end of a single user-visible operation on the #GtkTextBuffer. See also: gtk_text_buffer_end_user_action(), gtk_text_buffer_insert_interactive(), gtk_text_buffer_insert_range_interactive(), gtk_text_buffer_delete_interactive(), gtk_text_buffer_backspace(), gtk_text_buffer_delete_selection(), gtk_text_buffer_backspace().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="insert-child-anchor" when="last"> <doc xml:space="preserve">The ::insert-child-anchor signal is 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: gtk_text_buffer_insert_child_anchor().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">position to insert @anchor in @textbuffer</doc> <type name="TextIter"/> </parameter> <parameter name="anchor" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextChildAnchor to be inserted</doc> <type name="TextChildAnchor"/> </parameter> </parameters> </glib:signal> <glib:signal name="insert-pixbuf" when="last"> <doc xml:space="preserve">The ::insert-pixbuf signal is emitted to insert a #GdkPixbuf 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 @pixbuf. See also: gtk_text_buffer_insert_pixbuf().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">position to insert @pixbuf in @textbuffer</doc> <type name="TextIter"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">the #GdkPixbuf to be inserted</doc> <type name="GdkPixbuf.Pixbuf"/> </parameter> </parameters> </glib:signal> <glib:signal name="insert-text" when="last"> <doc xml:space="preserve">The ::insert-text signal is 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: gtk_text_buffer_insert(), gtk_text_buffer_insert_range().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">position to insert @text in @textbuffer</doc> <type name="TextIter"/> </parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">the UTF-8 text to be inserted</doc> <type name="utf8" c:type="gchar*"/> </parameter> <parameter name="len" transfer-ownership="none"> <doc xml:space="preserve">length of the inserted text in bytes</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="mark-deleted" when="last"> <doc xml:space="preserve">The ::mark-deleted signal is emitted as notification after a #GtkTextMark is deleted. See also: gtk_text_buffer_delete_mark().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">The mark that was deleted</doc> <type name="TextMark"/> </parameter> </parameters> </glib:signal> <glib:signal name="mark-set" when="last"> <doc xml:space="preserve">The ::mark-set signal is emitted as notification after a #GtkTextMark is set. See also: gtk_text_buffer_create_mark(), gtk_text_buffer_move_mark().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">The location of @mark in @textbuffer</doc> <type name="TextIter"/> </parameter> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">The mark that is set</doc> <type name="TextMark"/> </parameter> </parameters> </glib:signal> <glib:signal name="modified-changed" when="last"> <doc xml:space="preserve">The ::modified-changed signal is emitted when the modified bit of a #GtkTextBuffer flips. See also: gtk_text_buffer_set_modified().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="paste-done" when="last" version="2.16"> <doc xml:space="preserve">The paste-done signal is emitted after paste operation has been completed. This is useful to properly scroll the view to the end of the pasted text. See gtk_text_buffer_paste_clipboard() for more details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="clipboard" transfer-ownership="none"> <doc xml:space="preserve">the #GtkClipboard pasted from</doc> <type name="Clipboard"/> </parameter> </parameters> </glib:signal> <glib:signal name="remove-tag" when="last"> <doc xml:space="preserve">The ::remove-tag signal is 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: gtk_text_buffer_remove_tag().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">the tag to be removed</doc> <type name="TextTag"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">the start of the range the tag is removed from</doc> <type name="TextIter"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">the end of the range the tag is removed from</doc> <type name="TextIter"/> </parameter> </parameters> </glib:signal> </class> <record name="TextBufferClass" c:type="GtkTextBufferClass" glib:is-gtype-struct-for="TextBuffer"> <field name="parent_class"> <doc xml:space="preserve">The object class structure needs to be the first.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="insert_text"> <callback name="insert_text"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="pos" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="new_text" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="new_text_length" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="insert_pixbuf"> <callback name="insert_pixbuf"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location to insert the pixbuf</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">a #GdkPixbuf</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </callback> </field> <field name="insert_child_anchor"> <callback name="insert_child_anchor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location to insert the anchor</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="anchor" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextChildAnchor</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </parameter> </parameters> </callback> </field> <field name="delete_range"> <callback name="delete_range"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="start" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </callback> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </callback> </field> <field name="modified_changed"> <callback name="modified_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </callback> </field> <field name="mark_set"> <callback name="mark_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="location" transfer-ownership="none"> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="mark" transfer-ownership="none"> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> </parameters> </callback> </field> <field name="mark_deleted"> <callback name="mark_deleted"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="mark" transfer-ownership="none"> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> </parameters> </callback> </field> <field name="apply_tag"> <callback name="apply_tag"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be tagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be tagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </callback> </field> <field name="remove_tag"> <callback name="remove_tag"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">one bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">other bound of range to be untagged</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </callback> </field> <field name="begin_user_action"> <callback name="begin_user_action"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </callback> </field> <field name="end_user_action"> <callback name="end_user_action"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </callback> </field> <field name="paste_done"> <callback name="paste_done"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="clipboard" transfer-ownership="none"> <type name="Clipboard" c:type="GtkClipboard*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="TextBufferDeserializeFunc" c:type="GtkTextBufferDeserializeFunc" throws="1"> <doc xml:space="preserve">A function that is called to deserialize rich text that has been serialized with gtk_text_buffer_serialize(), and insert it at @iter.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="register_buffer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextBuffer the format is registered with</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="content_buffer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextBuffer to deserialize into</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">insertion point for the deserialized text</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">data to deserialize</doc> <array length="4" zero-terminated="0" c:type="guint8*"> <type name="guint8" c:type="guint8"/> </array> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">length of @data</doc> <type name="gsize" c:type="gsize"/> </parameter> <parameter name="create_tags" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if deserializing may create tags</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="6"> <doc xml:space="preserve">user data that was specified when registering the format</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="TextBufferPrivate" c:type="GtkTextBufferPrivate" disguised="1"> </record> <callback name="TextBufferSerializeFunc" c:type="GtkTextBufferSerializeFunc"> <doc xml:space="preserve">A function that is called to serialize the content of a text buffer. It must return the serialized form of the content.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a newly-allocated array of guint8 which contains the serialized data, or %NULL if an error occurred</doc> <type name="guint8" c:type="guint8*"/> </return-value> <parameters> <parameter name="register_buffer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextBuffer for which the format is registered</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="content_buffer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextBuffer to serialize</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">start of the block of text to serialize</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">end of the block of text to serialize</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">Return location for the length of the serialized data</doc> <type name="gsize" c:type="gsize*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="5"> <doc xml:space="preserve">user data that was specified when registering the format</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <enumeration name="TextBufferTargetInfo" glib:type-name="GtkTextBufferTargetInfo" glib:get-type="gtk_text_buffer_target_info_get_type" c:type="GtkTextBufferTargetInfo"> <doc xml:space="preserve">These values are used as âinfoâ for the targets contained in the lists returned by gtk_text_buffer_get_copy_target_list() and gtk_text_buffer_get_paste_target_list(). The values counts down from `-1` to avoid clashes with application added drag destinations which usually start at 0.</doc> <member name="buffer_contents" value="-1" c:identifier="GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS" glib:nick="buffer-contents"> <doc xml:space="preserve">Buffer contents</doc> </member> <member name="rich_text" value="-2" c:identifier="GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT" glib:nick="rich-text"> <doc xml:space="preserve">Rich text</doc> </member> <member name="text" value="-3" c:identifier="GTK_TEXT_BUFFER_TARGET_INFO_TEXT" glib:nick="text"> <doc xml:space="preserve">Text</doc> </member> </enumeration> <class name="TextCellAccessible" c:symbol-prefix="text_cell_accessible" c:type="GtkTextCellAccessible" parent="RendererCellAccessible" glib:type-name="GtkTextCellAccessible" glib:get-type="gtk_text_cell_accessible_get_type" glib:type-struct="TextCellAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Text"/> <field name="parent"> <type name="RendererCellAccessible" c:type="GtkRendererCellAccessible"/> </field> <field name="priv"> <type name="TextCellAccessiblePrivate" c:type="GtkTextCellAccessiblePrivate*"/> </field> </class> <record name="TextCellAccessibleClass" c:type="GtkTextCellAccessibleClass" glib:is-gtype-struct-for="TextCellAccessible"> <field name="parent_class"> <type name="RendererCellAccessibleClass" c:type="GtkRendererCellAccessibleClass"/> </field> </record> <record name="TextCellAccessiblePrivate" c:type="GtkTextCellAccessiblePrivate" disguised="1"> </record> <callback name="TextCharPredicate" c:type="GtkTextCharPredicate"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="ch" transfer-ownership="none"> <type name="gunichar" c:type="gunichar"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="TextChildAnchor" c:symbol-prefix="text_child_anchor" c:type="GtkTextChildAnchor" parent="GObject.Object" glib:type-name="GtkTextChildAnchor" glib:get-type="gtk_text_child_anchor_get_type" glib:type-struct="TextChildAnchorClass"> <doc xml:space="preserve">A #GtkTextChildAnchor is a spot in the buffer where child widgets can be âanchoredâ (inserted inline, as if they were characters). The anchor can have multiple widgets anchored, to allow for multiple views.</doc> <constructor name="new" c:identifier="gtk_text_child_anchor_new"> <doc xml:space="preserve">Creates a new #GtkTextChildAnchor. Usually you would then insert it into a #GtkTextBuffer with gtk_text_buffer_insert_child_anchor(). To perform the creation and insertion in one step, use the convenience function gtk_text_buffer_create_child_anchor().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkTextChildAnchor</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </return-value> </constructor> <method name="get_deleted" c:identifier="gtk_text_child_anchor_get_deleted"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the child anchor has been deleted from its buffer</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="anchor" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextChildAnchor</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </instance-parameter> </parameters> </method> <method name="get_widgets" c:identifier="gtk_text_child_anchor_get_widgets"> <doc xml:space="preserve">Gets a list of all widgets anchored at this child anchor. The returned list should be freed with g_list_free().</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">list of widgets anchored at @anchor</doc> <type name="GLib.List" c:type="GList*"> <type name="Widget"/> </type> </return-value> <parameters> <instance-parameter name="anchor" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextChildAnchor</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </instance-parameter> </parameters> </method> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="segment" readable="0" private="1"> <type name="gpointer" c:type="gpointer"/> </field> </class> <record name="TextChildAnchorClass" c:type="GtkTextChildAnchorClass" glib:is-gtype-struct-for="TextChildAnchor"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="TextDirection" glib:type-name="GtkTextDirection" glib:get-type="gtk_text_direction_get_type" c:type="GtkTextDirection"> <doc xml:space="preserve">Reading directions for text.</doc> <member name="none" value="0" c:identifier="GTK_TEXT_DIR_NONE" glib:nick="none"> <doc xml:space="preserve">No direction.</doc> </member> <member name="ltr" value="1" c:identifier="GTK_TEXT_DIR_LTR" glib:nick="ltr"> <doc xml:space="preserve">Left to right text direction.</doc> </member> <member name="rtl" value="2" c:identifier="GTK_TEXT_DIR_RTL" glib:nick="rtl"> <doc xml:space="preserve">Right to left text direction.</doc> </member> </enumeration> <enumeration name="TextExtendSelection" version="3.16" glib:type-name="GtkTextExtendSelection" glib:get-type="gtk_text_extend_selection_get_type" c:type="GtkTextExtendSelection"> <doc xml:space="preserve">Granularity types that extend the text selection. Use the #GtkTextView::extend-selection signal to customize the selection.</doc> <member name="word" value="0" c:identifier="GTK_TEXT_EXTEND_SELECTION_WORD" glib:nick="word"> <doc xml:space="preserve">Selects the current word. It is triggered by a double-click for example.</doc> </member> <member name="line" value="1" c:identifier="GTK_TEXT_EXTEND_SELECTION_LINE" glib:nick="line"> <doc xml:space="preserve">Selects the current line. It is triggered by a triple-click for example.</doc> </member> </enumeration> <record name="TextIter" c:type="GtkTextIter" glib:type-name="GtkTextIter" glib:get-type="gtk_text_iter_get_type" c:symbol-prefix="text_iter"> <doc xml:space="preserve">You may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.</doc> <field name="dummy1" readable="0" private="1"> <type name="gpointer" c:type="gpointer"/> </field> <field name="dummy2" readable="0" private="1"> <type name="gpointer" c:type="gpointer"/> </field> <field name="dummy3" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy4" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy5" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy6" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy7" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy8" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy9" readable="0" private="1"> <type name="gpointer" c:type="gpointer"/> </field> <field name="dummy10" readable="0" private="1"> <type name="gpointer" c:type="gpointer"/> </field> <field name="dummy11" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy12" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy13" readable="0" private="1"> <type name="gint" c:type="gint"/> </field> <field name="dummy14" readable="0" private="1"> <type name="gpointer" c:type="gpointer"/> </field> <method name="assign" c:identifier="gtk_text_iter_assign" version="3.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="other" transfer-ownership="none"> <doc xml:space="preserve">another #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="backward_char" c:identifier="gtk_text_iter_backward_char"> <doc xml:space="preserve">Moves backward by one character offset. Returns %TRUE if movement was possible; if @iter was the first in the buffer (character offset 0), gtk_text_iter_backward_char() returns %FALSE for convenience when writing loops.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether movement was possible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="backward_chars" c:identifier="gtk_text_iter_backward_chars"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved and is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of characters to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="backward_cursor_position" c:identifier="gtk_text_iter_backward_cursor_position"> <doc xml:space="preserve">Like gtk_text_iter_forward_cursor_position(), but moves backward.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="backward_cursor_positions" c:identifier="gtk_text_iter_backward_cursor_positions"> <doc xml:space="preserve">Moves up to @count cursor positions. See gtk_text_iter_forward_cursor_position() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved and the new position is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of positions to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="backward_find_char" c:identifier="gtk_text_iter_backward_find_char"> <doc xml:space="preserve">Same as gtk_text_iter_forward_find_char(), but goes backward from @iter.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether a match was found</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="pred" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">function to be called on each character</doc> <type name="TextCharPredicate" c:type="GtkTextCharPredicate"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data for @pred</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="limit" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">search limit, or %NULL for none</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="backward_line" c:identifier="gtk_text_iter_backward_line"> <doc xml:space="preserve">Moves @iter to the start of the previous line. Returns %TRUE if @iter could be moved; i.e. if @iter was at character offset 0, this function returns %FALSE. Therefore if @iter was already on line 0, but not at the start of the line, @iter is snapped to the start of the line and the function returns %TRUE. (Note that this implies that in a loop calling this function, the line number may not change on every iteration, if your first iteration is on line 0.)</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="backward_lines" c:identifier="gtk_text_iter_backward_lines"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved and is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of lines to move backward</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="backward_search" c:identifier="gtk_text_iter_backward_search"> <doc xml:space="preserve">Same as gtk_text_iter_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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether a match was found</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter where the search begins</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">search string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">bitmask of flags affecting the search</doc> <type name="TextSearchFlags" c:type="GtkTextSearchFlags"/> </parameter> <parameter name="match_start" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">return location for start of match, or %NULL</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="match_end" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">return location for end of match, or %NULL</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="limit" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">location of last possible @match_start, or %NULL for start of buffer</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="backward_sentence_start" c:identifier="gtk_text_iter_backward_sentence_start"> <doc xml:space="preserve">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 (if not, the correct fix would be to the Pango text boundary algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="backward_sentence_starts" c:identifier="gtk_text_iter_backward_sentence_starts"> <doc xml:space="preserve">Calls gtk_text_iter_backward_sentence_start() up to @count times, or until it returns %FALSE. If @count is negative, moves forward instead of backward.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of sentences to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="backward_to_tag_toggle" c:identifier="gtk_text_iter_backward_to_tag_toggle"> <doc xml:space="preserve">Moves backward to the next toggle (on or off) of the #GtkTextTag @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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether we found a tag toggle before @iter</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTextTag, or %NULL</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> <method name="backward_visible_cursor_position" c:identifier="gtk_text_iter_backward_visible_cursor_position" version="2.4"> <doc xml:space="preserve">Moves @iter forward to the previous visible cursor position. See gtk_text_iter_backward_cursor_position() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved and the new position is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="backward_visible_cursor_positions" c:identifier="gtk_text_iter_backward_visible_cursor_positions" version="2.4"> <doc xml:space="preserve">Moves up to @count visible cursor positions. See gtk_text_iter_backward_cursor_position() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved and the new position is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of positions to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="backward_visible_line" c:identifier="gtk_text_iter_backward_visible_line" version="2.8"> <doc xml:space="preserve">Moves @iter to the start of the previous visible line. Returns %TRUE if @iter could be moved; i.e. if @iter was at character offset 0, this function returns %FALSE. Therefore if @iter was already on line 0, but not at the start of the line, @iter is snapped to the start of the line and the function returns %TRUE. (Note that this implies that in a loop calling this function, the line number may not change on every iteration, if your first iteration is on line 0.)</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="backward_visible_lines" c:identifier="gtk_text_iter_backward_visible_lines" version="2.8"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved and is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of lines to move backward</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="backward_visible_word_start" c:identifier="gtk_text_iter_backward_visible_word_start" version="2.4"> <doc xml:space="preserve">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 (if not, the correct fix would be to the Pango word break algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="backward_visible_word_starts" c:identifier="gtk_text_iter_backward_visible_word_starts" version="2.4"> <doc xml:space="preserve">Calls gtk_text_iter_backward_visible_word_start() up to @count times.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of times to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="backward_word_start" c:identifier="gtk_text_iter_backward_word_start"> <doc xml:space="preserve">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 (if not, the correct fix would be to the Pango word break algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="backward_word_starts" c:identifier="gtk_text_iter_backward_word_starts"> <doc xml:space="preserve">Calls gtk_text_iter_backward_word_start() up to @count times.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of times to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="begins_tag" c:identifier="gtk_text_iter_begins_tag" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">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 gtk_text_iter_begins_tag() 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 gtk_text_iter_ends_tag(), if gtk_text_iter_begins_tag() returns %TRUE, gtk_text_iter_has_tag() will also return %TRUE for the same parameters.</doc> <doc-deprecated xml:space="preserve">Use gtk_text_iter_starts_tag() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter is the start of a range tagged with @tag</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTextTag, or %NULL</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> <method name="can_insert" c:identifier="gtk_text_iter_can_insert"> <doc xml:space="preserve">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. gtk_text_buffer_insert_interactive() uses this function to decide whether insertions are allowed at a given position.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether text inserted at @iter would be editable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="default_editability" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if text is editable by default</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="compare" c:identifier="gtk_text_iter_compare"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">-1 if @lhs is less than @rhs, 1 if @lhs is greater, 0 if they are equal</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="lhs" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="rhs" transfer-ownership="none"> <doc xml:space="preserve">another #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="copy" c:identifier="gtk_text_iter_copy"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of the @iter, free with gtk_text_iter_free()</doc> <type name="TextIter" c:type="GtkTextIter*"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="editable" c:identifier="gtk_text_iter_editable"> <doc xml:space="preserve">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. This function is simply a convenience wrapper around gtk_text_iter_get_attributes(). 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 gtk_text_iter_can_insert() to handle this case.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter is inside an editable range</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="default_setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if text is editable by default</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="ends_line" c:identifier="gtk_text_iter_ends_line"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter is at the end of a line</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="ends_sentence" c:identifier="gtk_text_iter_ends_sentence"> <doc xml:space="preserve">Determines whether @iter ends a sentence. Sentence boundaries are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango text boundary algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is at the end of a sentence.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="ends_tag" c:identifier="gtk_text_iter_ends_tag"> <doc xml:space="preserve">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 gtk_text_iter_ends_tag() 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 gtk_text_iter_starts_tag(), if gtk_text_iter_ends_tag() returns %TRUE, gtk_text_iter_has_tag() will return %FALSE for the same parameters.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter is the end of a range tagged with @tag</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTextTag, or %NULL</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> <method name="ends_word" c:identifier="gtk_text_iter_ends_word"> <doc xml:space="preserve">Determines whether @iter ends a natural-language word. Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is at the end of a word</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="equal" c:identifier="gtk_text_iter_equal"> <doc xml:space="preserve">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 gtk_text_iter_compare().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the iterators point to the same place in the buffer</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="lhs" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="rhs" transfer-ownership="none"> <doc xml:space="preserve">another #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="forward_char" c:identifier="gtk_text_iter_forward_char"> <doc xml:space="preserve">Moves @iter forward by one character offset. Note that images embedded in the buffer occupy 1 character slot, so gtk_text_iter_forward_char() 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 gtk_text_iter_forward_char() returns %FALSE for convenience when writing loops.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved and is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_chars" c:identifier="gtk_text_iter_forward_chars"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved and is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of characters to move, may be negative</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="forward_cursor_position" c:identifier="gtk_text_iter_forward_cursor_position"> <doc xml:space="preserve">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 "combining mark" that causes the accent to be rendered; so the cursor canât go between those two characters. See also the #PangoLogAttr-struct and pango_break() function.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved and the new position is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_cursor_positions" c:identifier="gtk_text_iter_forward_cursor_positions"> <doc xml:space="preserve">Moves up to @count cursor positions. See gtk_text_iter_forward_cursor_position() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved and the new position is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of positions to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="forward_find_char" c:identifier="gtk_text_iter_forward_find_char"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether a match was found</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="pred" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">a function to be called on each character</doc> <type name="TextCharPredicate" c:type="GtkTextCharPredicate"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data for @pred</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="limit" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">search limit, or %NULL for none</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="forward_line" c:identifier="gtk_text_iter_forward_line"> <doc xml:space="preserve">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 dereferencable, returns %FALSE. Otherwise, returns %TRUE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter can be dereferenced</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_lines" c:identifier="gtk_text_iter_forward_lines"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved and is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of lines to move forward</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="forward_search" c:identifier="gtk_text_iter_forward_search"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether a match was found</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">start of search</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <doc xml:space="preserve">a search string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags affecting how the search is done</doc> <type name="TextSearchFlags" c:type="GtkTextSearchFlags"/> </parameter> <parameter name="match_start" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">return location for start of match, or %NULL</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="match_end" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">return location for end of match, or %NULL</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="limit" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">location of last possible @match_end, or %NULL for the end of the buffer</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="forward_sentence_end" c:identifier="gtk_text_iter_forward_sentence_end"> <doc xml:space="preserve">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 (if not, the correct fix would be to the Pango text boundary algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_sentence_ends" c:identifier="gtk_text_iter_forward_sentence_ends"> <doc xml:space="preserve">Calls gtk_text_iter_forward_sentence_end() @count times (or until gtk_text_iter_forward_sentence_end() returns %FALSE). If @count is negative, moves backward instead of forward.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of sentences to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="forward_to_end" c:identifier="gtk_text_iter_forward_to_end"> <doc xml:space="preserve">Moves @iter forward to the âend iterator,â which points one past the last valid character in the buffer. gtk_text_iter_get_char() called on the end iterator returns 0, which is convenient for writing loops.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_to_line_end" c:identifier="gtk_text_iter_forward_to_line_end"> <doc xml:space="preserve">Moves the iterator to point to the paragraph delimiter characters, which will be 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved and the new location is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_to_tag_toggle" c:identifier="gtk_text_iter_forward_to_tag_toggle"> <doc xml:space="preserve">Moves forward to the next toggle (on or off) of the #GtkTextTag @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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether we found a tag toggle after @iter</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTextTag, or %NULL</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> <method name="forward_visible_cursor_position" c:identifier="gtk_text_iter_forward_visible_cursor_position" version="2.4"> <doc xml:space="preserve">Moves @iter forward to the next visible cursor position. See gtk_text_iter_forward_cursor_position() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved and the new position is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_visible_cursor_positions" c:identifier="gtk_text_iter_forward_visible_cursor_positions" version="2.4"> <doc xml:space="preserve">Moves up to @count visible cursor positions. See gtk_text_iter_forward_cursor_position() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if we moved and the new position is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of positions to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="forward_visible_line" c:identifier="gtk_text_iter_forward_visible_line" version="2.8"> <doc xml:space="preserve">Moves @iter to the start of the next visible line. Returns %TRUE if there was a next line to move to, and %FALSE if @iter was simply moved to the end of the buffer and is now not dereferenceable, or if @iter was already at the end of the buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter can be dereferenced</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_visible_lines" c:identifier="gtk_text_iter_forward_visible_lines" version="2.8"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter moved and is dereferenceable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of lines to move forward</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="forward_visible_word_end" c:identifier="gtk_text_iter_forward_visible_word_end" version="2.4"> <doc xml:space="preserve">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 (if not, the correct fix would be to the Pango word break algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_visible_word_ends" c:identifier="gtk_text_iter_forward_visible_word_ends" version="2.4"> <doc xml:space="preserve">Calls gtk_text_iter_forward_visible_word_end() up to @count times.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of times to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="forward_word_end" c:identifier="gtk_text_iter_forward_word_end"> <doc xml:space="preserve">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 (if not, the correct fix would be to the Pango word break algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="forward_word_ends" c:identifier="gtk_text_iter_forward_word_ends"> <doc xml:space="preserve">Calls gtk_text_iter_forward_word_end() up to @count times.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of times to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="free" c:identifier="gtk_text_iter_free"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a dynamically-allocated iterator</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_attributes" c:identifier="gtk_text_iter_get_attributes"> <doc xml:space="preserve">Computes the effect of any tags applied to this spot in the text. The @values parameter should be initialized to the default settings you wish to use if no tags are in effect. Youâd typically obtain the defaults from gtk_text_view_get_default_attributes(). gtk_text_iter_get_attributes() will modify @values, applying the effects of any tags present at @iter. If any tags affected @values, the function returns %TRUE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @values was modified</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="values" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextAttributes to be filled in</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </parameter> </parameters> </method> <method name="get_buffer" c:identifier="gtk_text_iter_get_buffer"> <doc xml:space="preserve">Returns the #GtkTextBuffer this iterator is associated with.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the buffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_bytes_in_line" c:identifier="gtk_text_iter_get_bytes_in_line"> <doc xml:space="preserve">Returns the number of bytes in the line containing @iter, including the paragraph delimiters.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">number of bytes in the line</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_char" c:identifier="gtk_text_iter_get_char"> <doc xml:space="preserve">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 gtk_text_iter_get_char() returns 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a Unicode character, or 0 if @iter is not dereferenceable</doc> <type name="gunichar" c:type="gunichar"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_chars_in_line" c:identifier="gtk_text_iter_get_chars_in_line"> <doc xml:space="preserve">Returns the number of characters in the line containing @iter, including the paragraph delimiters.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">number of characters in the line</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_child_anchor" c:identifier="gtk_text_iter_get_child_anchor"> <doc xml:space="preserve">If the location at @iter contains a child anchor, the anchor is returned (with no new reference count added). Otherwise, %NULL is returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the anchor at @iter</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_language" c:identifier="gtk_text_iter_get_language"> <doc xml:space="preserve">A convenience wrapper around gtk_text_iter_get_attributes(), which returns the language in effect at @iter. If no tags affecting language apply to @iter, the return value is identical to that of gtk_get_default_language().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">language in effect at @iter</doc> <type name="Pango.Language" c:type="PangoLanguage*"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_line" c:identifier="gtk_text_iter_get_line"> <doc xml:space="preserve">Returns the line number containing the iterator. Lines in a #GtkTextBuffer are numbered beginning with 0 for the first line in the buffer.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a line number</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_line_index" c:identifier="gtk_text_iter_get_line_index"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">distance from start of line, in bytes</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_line_offset" c:identifier="gtk_text_iter_get_line_offset"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">offset from start of line</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_marks" c:identifier="gtk_text_iter_get_marks"> <doc xml:space="preserve">Returns a list of all #GtkTextMark at this location. Because marks are not iterable (they donât take up any "space" 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.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">list of #GtkTextMark</doc> <type name="GLib.SList" c:type="GSList*"> <type name="TextMark"/> </type> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_offset" c:identifier="gtk_text_iter_get_offset"> <doc xml:space="preserve">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 gtk_text_buffer_get_iter_at_offset() to convert an offset back into an iterator.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a character offset</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_pixbuf" c:identifier="gtk_text_iter_get_pixbuf"> <doc xml:space="preserve">If the element at @iter is a pixbuf, the pixbuf is returned (with no new reference count added). Otherwise, %NULL is returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the pixbuf at @iter</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_slice" c:identifier="gtk_text_iter_get_slice"> <doc xml:space="preserve">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 pixbuf or widget is in the buffer.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">slice of text from the buffer</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">iterator at start of a range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">iterator at end of a range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_tags" c:identifier="gtk_text_iter_get_tags"> <doc xml:space="preserve">Returns a list of tags that apply to @iter, in ascending order of priority (highest-priority tags are last). The #GtkTextTag in the list donât have a reference added, but you have to free the list itself.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">list of #GtkTextTag</doc> <type name="GLib.SList" c:type="GSList*"> <type name="TextTag"/> </type> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_text" c:identifier="gtk_text_iter_get_text"> <doc xml:space="preserve">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 gtk_text_iter_get_slice().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">array of characters from the buffer</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">iterator at start of a range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">iterator at end of a range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_toggled_tags" c:identifier="gtk_text_iter_get_toggled_tags"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">tags toggled at this point</doc> <type name="GLib.SList" c:type="GSList*"> <type name="TextTag"/> </type> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="toggled_on" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to get toggled-on tags</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="get_visible_line_index" c:identifier="gtk_text_iter_get_visible_line_index"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">byte index of @iter with respect to the start of the line</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_visible_line_offset" c:identifier="gtk_text_iter_get_visible_line_offset"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">offset in visible characters from the start of the line</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="get_visible_slice" c:identifier="gtk_text_iter_get_visible_slice"> <doc xml:space="preserve">Like gtk_text_iter_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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">slice of text from the buffer</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">iterator at start of range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">iterator at end of range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_visible_text" c:identifier="gtk_text_iter_get_visible_text"> <doc xml:space="preserve">Like gtk_text_iter_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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">string containing visible text in the range</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">iterator at start of range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">iterator at end of range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="has_tag" c:identifier="gtk_text_iter_has_tag"> <doc xml:space="preserve">Returns %TRUE if @iter points to a character that is part of a range tagged with @tag. See also gtk_text_iter_starts_tag() and gtk_text_iter_ends_tag().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter is tagged with @tag</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> <method name="in_range" c:identifier="gtk_text_iter_in_range"> <doc xml:space="preserve">Checks whether @iter falls in the range [@start, @end). @start and @end must be in ascending order.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is in the range</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">start of range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">end of range</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="inside_sentence" c:identifier="gtk_text_iter_inside_sentence"> <doc xml:space="preserve">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 (if not, the correct fix would be to the Pango text boundary algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is inside a sentence.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="inside_word" c:identifier="gtk_text_iter_inside_word"> <doc xml:space="preserve">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 (if not, the correct fix would be to the Pango word break algorithms). Note that if gtk_text_iter_starts_word() returns %TRUE, then this function returns %TRUE too, since @iter points to the first character of the word.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is inside a word</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="is_cursor_position" c:identifier="gtk_text_iter_is_cursor_position"> <doc xml:space="preserve">See gtk_text_iter_forward_cursor_position() or #PangoLogAttr or pango_break() for details on what a cursor position is.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cursor can be placed at @iter</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="is_end" c:identifier="gtk_text_iter_is_end"> <doc xml:space="preserve">Returns %TRUE if @iter is the end iterator, i.e. one past the last dereferenceable iterator in the buffer. gtk_text_iter_is_end() is the most efficient way to check whether an iterator is the end iterator.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter is the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="is_start" c:identifier="gtk_text_iter_is_start"> <doc xml:space="preserve">Returns %TRUE if @iter is the first iterator in the buffer, that is if @iter has a character offset of 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter is the first in the buffer</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="order" c:identifier="gtk_text_iter_order"> <doc xml:space="preserve">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 gtk_text_iter_in_range(), that expect a pre-sorted range.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="first" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="second" transfer-ownership="none"> <doc xml:space="preserve">another #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="set_line" c:identifier="gtk_text_iter_set_line"> <doc xml:space="preserve">Moves iterator @iter to the start of the line @line_number. If @line_number is negative or larger than the number of lines in the buffer, moves @iter to the start of the last line in the buffer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="line_number" transfer-ownership="none"> <doc xml:space="preserve">line number (counted from 0)</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_line_index" c:identifier="gtk_text_iter_set_line_index"> <doc xml:space="preserve">Same as gtk_text_iter_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="byte_on_line" transfer-ownership="none"> <doc xml:space="preserve">a byte index relative to the start of @iterâs current line</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_line_offset" c:identifier="gtk_text_iter_set_line_offset"> <doc xml:space="preserve">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 gtk_text_iter_set_line_index() if you have a byte index rather than a character offset.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="char_on_line" transfer-ownership="none"> <doc xml:space="preserve">a character offset relative to the start of @iterâs current line</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_offset" c:identifier="gtk_text_iter_set_offset"> <doc xml:space="preserve">Sets @iter to point to @char_offset. @char_offset counts from the start of the entire text buffer, starting with 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="char_offset" transfer-ownership="none"> <doc xml:space="preserve">a character number</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_visible_line_index" c:identifier="gtk_text_iter_set_visible_line_index"> <doc xml:space="preserve">Like gtk_text_iter_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="byte_on_line" transfer-ownership="none"> <doc xml:space="preserve">a byte index</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_visible_line_offset" c:identifier="gtk_text_iter_set_visible_line_offset"> <doc xml:space="preserve">Like gtk_text_iter_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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </instance-parameter> <parameter name="char_on_line" transfer-ownership="none"> <doc xml:space="preserve">a character offset</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="starts_line" c:identifier="gtk_text_iter_starts_line"> <doc xml:space="preserve">Returns %TRUE if @iter begins a paragraph, i.e. if gtk_text_iter_get_line_offset() would return 0. However this function is potentially more efficient than gtk_text_iter_get_line_offset() because it doesnât have to compute the offset, it just has to see whether itâs 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter begins a line</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="starts_sentence" c:identifier="gtk_text_iter_starts_sentence"> <doc xml:space="preserve">Determines whether @iter begins a sentence. Sentence boundaries are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango text boundary algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is at the start of a sentence.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="starts_tag" c:identifier="gtk_text_iter_starts_tag" version="3.20"> <doc xml:space="preserve">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 gtk_text_iter_starts_tag() 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 gtk_text_iter_ends_tag(), if gtk_text_iter_starts_tag() returns %TRUE, gtk_text_iter_has_tag() will also return %TRUE for the same parameters.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @iter is the start of a range tagged with @tag</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTextTag, or %NULL</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> <method name="starts_word" c:identifier="gtk_text_iter_starts_word"> <doc xml:space="preserve">Determines whether @iter begins a natural-language word. Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is at the start of a word</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> </parameters> </method> <method name="toggles_tag" c:identifier="gtk_text_iter_toggles_tag"> <doc xml:space="preserve">This is equivalent to (gtk_text_iter_starts_tag() || gtk_text_iter_ends_tag()), i.e. it tells you whether a range with @tag applied to it begins or ends at @iter.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @tag is toggled on or off at @iter</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">an iterator</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTextTag, or %NULL</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> </record> <class name="TextMark" c:symbol-prefix="text_mark" c:type="GtkTextMark" parent="GObject.Object" glib:type-name="GtkTextMark" glib:get-type="gtk_text_mark_get_type" glib:type-struct="TextMarkClass"> <doc xml:space="preserve">You may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together. A #GtkTextMark is like a bookmark in a text buffer; it preserves a position in the text. You can convert the mark to an iterator using gtk_text_buffer_get_iter_at_mark(). Unlike iterators, marks remain valid across buffer mutations, because their behavior is defined when text is inserted or deleted. When text containing a mark is deleted, the mark remains in the position originally occupied by the deleted text. When text is inserted at a mark, a mark with âleft gravityâ will be moved to the beginning of the newly-inserted text, and a mark with âright gravityâ will be moved to the end. Note that âleftâ and ârightâ here refer to logical direction (left is the toward the start of the buffer); in some languages such as Hebrew the logically-leftmost text is not actually on the left when displayed. Marks are reference counted, but the reference count only controls the validity of the memory; marks can be deleted from the buffer at any time with gtk_text_buffer_delete_mark(). Once deleted from the buffer, a mark is essentially useless. Marks optionally have names; these can be convenient to avoid passing the #GtkTextMark object around. Marks are typically created using the gtk_text_buffer_create_mark() function.</doc> <constructor name="new" c:identifier="gtk_text_mark_new" version="2.12"> <doc xml:space="preserve">Creates a text mark. Add it to a buffer using gtk_text_buffer_add_mark(). If @name is %NULL, the mark is anonymous; otherwise, the mark can be retrieved by name using gtk_text_buffer_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).</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">new #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">mark name or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="left_gravity" transfer-ownership="none"> <doc xml:space="preserve">whether the mark should have left gravity</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </constructor> <method name="get_buffer" c:identifier="gtk_text_mark_get_buffer"> <doc xml:space="preserve">Gets the buffer this mark is located inside, or %NULL if the mark is deleted.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the markâs #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </return-value> <parameters> <instance-parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </instance-parameter> </parameters> </method> <method name="get_deleted" c:identifier="gtk_text_mark_get_deleted"> <doc xml:space="preserve">Returns %TRUE if the mark has been removed from its buffer with gtk_text_buffer_delete_mark(). See gtk_text_buffer_add_mark() for a way to add it to a buffer again.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the mark is deleted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </instance-parameter> </parameters> </method> <method name="get_left_gravity" c:identifier="gtk_text_mark_get_left_gravity"> <doc xml:space="preserve">Determines whether the mark has left gravity.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the mark has left gravity, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </instance-parameter> </parameters> </method> <method name="get_name" c:identifier="gtk_text_mark_get_name"> <doc xml:space="preserve">Returns the mark name; returns NULL for anonymous marks.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">mark name</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </instance-parameter> </parameters> </method> <method name="get_visible" c:identifier="gtk_text_mark_get_visible"> <doc xml:space="preserve">Returns %TRUE if the mark is visible (i.e. a cursor is displayed for it).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </instance-parameter> </parameters> </method> <method name="set_visible" c:identifier="gtk_text_mark_set_visible"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">visibility of mark</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="left-gravity" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="name" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The name of the mark or %NULL if the mark is anonymous.</doc> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="segment" readable="0" private="1"> <type name="gpointer" c:type="gpointer"/> </field> </class> <record name="TextMarkClass" c:type="GtkTextMarkClass" glib:is-gtype-struct-for="TextMark"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <bitfield name="TextSearchFlags" glib:type-name="GtkTextSearchFlags" glib:get-type="gtk_text_search_flags_get_type" c:type="GtkTextSearchFlags"> <doc xml:space="preserve">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 pixbufs or child widgets.</doc> <member name="visible_only" value="1" c:identifier="GTK_TEXT_SEARCH_VISIBLE_ONLY" glib:nick="visible-only"> <doc xml:space="preserve">Search only visible data. A search match may have invisible text interspersed.</doc> </member> <member name="text_only" value="2" c:identifier="GTK_TEXT_SEARCH_TEXT_ONLY" glib:nick="text-only"> <doc xml:space="preserve">Search only text. A match may have pixbufs or child widgets mixed inside the matched range.</doc> </member> <member name="case_insensitive" value="4" c:identifier="GTK_TEXT_SEARCH_CASE_INSENSITIVE" glib:nick="case-insensitive"> <doc xml:space="preserve">The text will be matched regardless of what case it is in.</doc> </member> </bitfield> <class name="TextTag" c:symbol-prefix="text_tag" c:type="GtkTextTag" parent="GObject.Object" glib:type-name="GtkTextTag" glib:get-type="gtk_text_tag_get_type" glib:type-struct="TextTagClass"> <doc xml:space="preserve">You may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together. Tags should be in the #GtkTextTagTable for a given #GtkTextBuffer before using them with that buffer. gtk_text_buffer_create_tag() is the best way to create tags. See âgtk3-demoâ for numerous examples. For each property of #GtkTextTag, there is a âsetâ property, e.g. âfont-setâ corresponds to âfontâ. These âsetâ properties reflect whether a property has been set or not. They are maintained by GTK+ and you should not set them independently.</doc> <constructor name="new" c:identifier="gtk_text_tag_new"> <doc xml:space="preserve">Creates a #GtkTextTag. Configure the tag using object arguments, i.e. using g_object_set().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">tag name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="event" invoker="event"> <doc xml:space="preserve">Emits the âeventâ signal on the #GtkTextTag.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">result of signal emission (whether the event was handled)</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </instance-parameter> <parameter name="event_object" transfer-ownership="none"> <doc xml:space="preserve">object that received the event, such as a widget</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the event</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location where the event was received</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </virtual-method> <method name="changed" c:identifier="gtk_text_tag_changed" version="3.20"> <doc xml:space="preserve">Emits the #GtkTextTagTable::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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag.</doc> <type name="TextTag" c:type="GtkTextTag*"/> </instance-parameter> <parameter name="size_changed" transfer-ownership="none"> <doc xml:space="preserve">whether the change affects the #GtkTextView layout.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="event" c:identifier="gtk_text_tag_event"> <doc xml:space="preserve">Emits the âeventâ signal on the #GtkTextTag.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">result of signal emission (whether the event was handled)</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </instance-parameter> <parameter name="event_object" transfer-ownership="none"> <doc xml:space="preserve">object that received the event, such as a widget</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the event</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location where the event was received</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_priority" c:identifier="gtk_text_tag_get_priority"> <doc xml:space="preserve">Get the tag priority.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The tagâs priority.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </instance-parameter> </parameters> </method> <method name="set_priority" c:identifier="gtk_text_tag_set_priority"> <doc xml:space="preserve">Sets the priority of a #GtkTextTag. Valid priorities start at 0 and go to one less than gtk_text_tag_table_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 gtk_text_buffer_create_tag(), which adds the tag to the bufferâs table automatically.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </instance-parameter> <parameter name="priority" transfer-ownership="none"> <doc xml:space="preserve">the new priority</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <property name="accumulative-margin" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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).</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="background" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="background-full-height" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="background-full-height-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="background-gdk" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Background color as a #GdkColor.</doc> <doc-deprecated xml:space="preserve">Use #GtkTextTag:background-rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="background-rgba" version="3.2" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Background color as a #GdkRGBA.</doc> <type name="Gdk.RGBA"/> </property> <property name="background-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="direction" writable="1" transfer-ownership="none"> <type name="TextDirection"/> </property> <property name="editable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="editable-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="fallback" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether font fallback is enabled. When set to %TRUE, other fonts will be substituted where the current font is missing glyphs.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="fallback-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="family" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="family-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="font" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Font description as string, e.g. \"Sans Italic 12\". Note that the initial value of this property depends on the internals of #PangoFontDescription.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="font-desc" writable="1" transfer-ownership="none"> <type name="Pango.FontDescription"/> </property> <property name="font-features" version="3.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">OpenType font features, as a string.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="font-features-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="foreground" readable="0" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="foreground-gdk" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Foreground color as a #GdkColor.</doc> <doc-deprecated xml:space="preserve">Use #GtkTextTag:foreground-rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="foreground-rgba" version="3.2" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Foreground color as a #GdkRGBA.</doc> <type name="Gdk.RGBA"/> </property> <property name="foreground-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="indent" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="indent-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="invisible" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="invisible-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="justification" writable="1" transfer-ownership="none"> <type name="Justification"/> </property> <property name="justification-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="language" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 gtk_get_default_language().</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="language-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="left-margin" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="left-margin-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="letter-spacing" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Extra spacing between graphemes, in Pango units.</doc> <type name="gint" c:type="gint"/> </property> <property name="letter-spacing-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="name" writable="1" construct-only="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="paragraph-background" version="2.8" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The paragraph background color as a string.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="paragraph-background-gdk" version="2.8" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The paragraph background color as a #GdkColor.</doc> <doc-deprecated xml:space="preserve">Use #GtkTextTag:paragraph-background-rgba instead.</doc-deprecated> <type name="Gdk.Color"/> </property> <property name="paragraph-background-rgba" version="3.2" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The paragraph background color as a #GdkRGBA.</doc> <type name="Gdk.RGBA"/> </property> <property name="paragraph-background-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="pixels-above-lines" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="pixels-above-lines-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="pixels-below-lines" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="pixels-below-lines-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="pixels-inside-wrap" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="pixels-inside-wrap-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="right-margin" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="right-margin-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="rise" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="rise-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="scale" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <property name="scale-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="size" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="size-points" writable="1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </property> <property name="size-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="stretch" writable="1" transfer-ownership="none"> <type name="Pango.Stretch"/> </property> <property name="stretch-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="strikethrough" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="strikethrough-rgba" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">This property modifies the color of strikeouts. If not set, strikeouts will use the forground color.</doc> <type name="Gdk.RGBA"/> </property> <property name="strikethrough-rgba-set" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If the #GtkTextTag:strikethrough-rgba property has been set.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="strikethrough-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="style" writable="1" transfer-ownership="none"> <type name="Pango.Style"/> </property> <property name="style-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="tabs" writable="1" transfer-ownership="none"> <type name="Pango.TabArray"/> </property> <property name="tabs-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="underline" writable="1" transfer-ownership="none"> <type name="Pango.Underline"/> </property> <property name="underline-rgba" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">This property modifies the color of underlines. If not set, underlines will use the forground color. If #GtkTextTag: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.</doc> <type name="Gdk.RGBA"/> </property> <property name="underline-rgba-set" version="3.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If the #GtkTextTag:underline-rgba property has been set.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="underline-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="variant" writable="1" transfer-ownership="none"> <type name="Pango.Variant"/> </property> <property name="variant-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="weight" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="weight-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="wrap-mode" writable="1" transfer-ownership="none"> <type name="WrapMode"/> </property> <property name="wrap-mode-set" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="TextTagPrivate" c:type="GtkTextTagPrivate*"/> </field> <glib:signal name="event" when="last"> <doc xml:space="preserve">The ::event signal is emitted when an event occurs on a region of the buffer marked with this tag.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <doc xml:space="preserve">the object the event was fired from (typically a #GtkTextView)</doc> <type name="GObject.Object"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the event which triggered the signal</doc> <type name="Gdk.Event"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter pointing at the location the event occurred</doc> <type name="TextIter"/> </parameter> </parameters> </glib:signal> </class> <record name="TextTagClass" c:type="GtkTextTagClass" glib:is-gtype-struct-for="TextTag"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="event"> <callback name="event"> <return-value transfer-ownership="none"> <doc xml:space="preserve">result of signal emission (whether the event was handled)</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="event_object" transfer-ownership="none"> <doc xml:space="preserve">object that received the event, such as a widget</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the event</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">location where the event was received</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="TextTagPrivate" c:type="GtkTextTagPrivate" disguised="1"> </record> <class name="TextTagTable" c:symbol-prefix="text_tag_table" c:type="GtkTextTagTable" parent="GObject.Object" glib:type-name="GtkTextTagTable" glib:get-type="gtk_text_tag_table_get_type" glib:type-struct="TextTagTableClass"> <doc xml:space="preserve">You may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together. # GtkTextTagTables as GtkBuildable The GtkTextTagTable implementation of the GtkBuildable interface supports adding tags by specifying âtagâ as the âtypeâ attribute of a <child> element. An example of a UI definition fragment specifying tags: |[ <object class="GtkTextTagTable"> <child type="tag"> <object class="GtkTextTag"/> </child> </object> ]|</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_text_tag_table_new"> <doc xml:space="preserve">Creates a new #GtkTextTagTable. The table contains no tags by default.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkTextTagTable</doc> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </return-value> </constructor> <virtual-method name="tag_added"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </virtual-method> <virtual-method name="tag_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="size_changed" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="tag_removed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </virtual-method> <method name="add" c:identifier="gtk_text_tag_table_add"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTagTable</doc> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> <method name="foreach" c:identifier="gtk_text_tag_table_foreach"> <doc xml:space="preserve">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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTagTable</doc> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">a function to call on each tag</doc> <type name="TextTagTableForeach" c:type="GtkTextTagTableForeach"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="get_size" c:identifier="gtk_text_tag_table_get_size"> <doc xml:space="preserve">Returns the size of the table (number of tags)</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">number of tags in @table</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTagTable</doc> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </instance-parameter> </parameters> </method> <method name="lookup" c:identifier="gtk_text_tag_table_lookup"> <doc xml:space="preserve">Look up a named tag.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The tag, or %NULL if none by that name is in the table.</doc> <type name="TextTag" c:type="GtkTextTag*"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTagTable</doc> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of a tag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="remove" c:identifier="gtk_text_tag_table_remove"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="table" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTagTable</doc> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </instance-parameter> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </method> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="TextTagTablePrivate" c:type="GtkTextTagTablePrivate*"/> </field> <glib:signal name="tag-added" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">the added tag.</doc> <type name="TextTag"/> </parameter> </parameters> </glib:signal> <glib:signal name="tag-changed" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">the changed tag.</doc> <type name="TextTag"/> </parameter> <parameter name="size_changed" transfer-ownership="none"> <doc xml:space="preserve">whether the change affects the #GtkTextView layout.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="tag-removed" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">the removed tag.</doc> <type name="TextTag"/> </parameter> </parameters> </glib:signal> </class> <record name="TextTagTableClass" c:type="GtkTextTagTableClass" glib:is-gtype-struct-for="TextTagTable"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="tag_changed"> <callback name="tag_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="table" transfer-ownership="none"> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </parameter> <parameter name="tag" transfer-ownership="none"> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="size_changed" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="tag_added"> <callback name="tag_added"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="table" transfer-ownership="none"> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </parameter> <parameter name="tag" transfer-ownership="none"> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </callback> </field> <field name="tag_removed"> <callback name="tag_removed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="table" transfer-ownership="none"> <type name="TextTagTable" c:type="GtkTextTagTable*"/> </parameter> <parameter name="tag" transfer-ownership="none"> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="TextTagTableForeach" c:type="GtkTextTagTableForeach"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tag" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextTag</doc> <type name="TextTag" c:type="GtkTextTag*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">data passed to gtk_text_tag_table_foreach()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="TextTagTablePrivate" c:type="GtkTextTagTablePrivate" disguised="1"> </record> <class name="TextView" c:symbol-prefix="text_view" c:type="GtkTextView" parent="Container" glib:type-name="GtkTextView" glib:get-type="gtk_text_view_get_type" glib:type-struct="TextViewClass"> <doc xml:space="preserve">You may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together. # CSS nodes |[<!-- language="plain" --> textview.view âââ border.top âââ border.left âââ text â â°ââ [selection] âââ border.right âââ border.bottom â°ââ [window.popup] ]| GtkTextView has a main css node with name textview and style class .view, and subnodes for each of the border windows, and the main text area, with names border and text, respectively. The border nodes each get one of the style classes .left, .right, .top or .bottom. A node representing the selection will appear below the text node. If a context menu is opened, the window node will appear as a subnode of the main node.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Scrollable"/> <constructor name="new" c:identifier="gtk_text_view_new"> <doc xml:space="preserve">Creates a new #GtkTextView. If you donât call gtk_text_view_set_buffer() before using the text view, an empty default buffer will be created for you. Get the buffer with gtk_text_view_get_buffer(). If you want to specify your own buffer, consider gtk_text_view_new_with_buffer().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkTextView</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_buffer" c:identifier="gtk_text_view_new_with_buffer"> <doc xml:space="preserve">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 gtk_text_view_new(). The text view adds its own reference count to the buffer; it does not take over an existing reference.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkTextView.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </constructor> <virtual-method name="backspace"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="copy_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="create_buffer" introspectable="0"> <return-value> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="cut_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="delete_from_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <type name="DeleteType" c:type="GtkDeleteType"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw_layer"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="layer" transfer-ownership="none"> <type name="TextViewLayer" c:type="GtkTextViewLayer"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </virtual-method> <virtual-method name="extend_selection"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="granularity" transfer-ownership="none"> <type name="TextExtendSelection" c:type="GtkTextExtendSelection"/> </parameter> <parameter name="location" transfer-ownership="none"> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="start" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_at_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="str" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="insert_emoji"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="move_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="paste_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="populate_popup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="popup" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_anchor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="toggle_overwrite"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </virtual-method> <method name="add_child_at_anchor" c:identifier="gtk_text_view_add_child_at_anchor"> <doc xml:space="preserve">Adds a child widget in the text buffer, at the given @anchor.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="anchor" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextChildAnchor in the #GtkTextBuffer for @text_view</doc> <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/> </parameter> </parameters> </method> <method name="add_child_in_window" c:identifier="gtk_text_view_add_child_in_window"> <doc xml:space="preserve">Adds a child at fixed coordinates in one of the text widget's windows. The window must have nonzero size (see gtk_text_view_set_border_window_size()). Note that the child coordinates are given relative to scrolling. When placing a child in #GTK_TEXT_WINDOW_WIDGET, scrolling is irrelevant, the child floats above all scrollable areas. But when placing a child in one of the scrollable windows (border windows or text window) it will move with the scrolling as needed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="which_window" transfer-ownership="none"> <doc xml:space="preserve">which window the child should appear in</doc> <type name="TextWindowType" c:type="GtkTextWindowType"/> </parameter> <parameter name="xpos" transfer-ownership="none"> <doc xml:space="preserve">X position of child in window coordinates</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="ypos" transfer-ownership="none"> <doc xml:space="preserve">Y position of child in window coordinates</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="backward_display_line" c:identifier="gtk_text_view_backward_display_line"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter was moved and is not on the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="backward_display_line_start" c:identifier="gtk_text_view_backward_display_line_start"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter was moved and is not on the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="buffer_to_window_coords" c:identifier="gtk_text_view_buffer_to_window_coords"> <doc xml:space="preserve">Converts coordinate (@buffer_x, @buffer_y) to coordinates for the window @win, and stores the result in (@window_x, @window_y). Note that you canât convert coordinates for a nonexisting window (see gtk_text_view_set_border_window_size()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="win" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextWindowType, except %GTK_TEXT_WINDOW_PRIVATE</doc> <type name="TextWindowType" c:type="GtkTextWindowType"/> </parameter> <parameter name="buffer_x" transfer-ownership="none"> <doc xml:space="preserve">buffer x coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="buffer_y" transfer-ownership="none"> <doc xml:space="preserve">buffer y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="window_x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">window x coordinate return location or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="window_y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">window y coordinate return location or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="forward_display_line" c:identifier="gtk_text_view_forward_display_line"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter was moved and is not on the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="forward_display_line_end" c:identifier="gtk_text_view_forward_display_line_end"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter was moved and is not on the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </method> <method name="get_accepts_tab" c:identifier="gtk_text_view_get_accepts_tab" version="2.4"> <doc xml:space="preserve">Returns whether pressing the Tab key inserts a tab characters. gtk_text_view_set_accepts_tab().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if pressing the Tab key inserts a tab character, %FALSE if pressing the Tab key moves the keyboard focus.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_border_window_size" c:identifier="gtk_text_view_get_border_window_size"> <doc xml:space="preserve">Gets the width of the specified border window. See gtk_text_view_set_border_window_size().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">width of window</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">window to return size from</doc> <type name="TextWindowType" c:type="GtkTextWindowType"/> </parameter> </parameters> </method> <method name="get_bottom_margin" c:identifier="gtk_text_view_get_bottom_margin" version="3.18"> <doc xml:space="preserve">Gets the bottom margin for text in the @text_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">bottom margin in pixels</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_buffer" c:identifier="gtk_text_view_get_buffer"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_cursor_locations" c:identifier="gtk_text_view_get_cursor_locations" version="3.0"> <doc xml:space="preserve">Given an @iter 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. 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 gtk_text_view_buffer_to_window_coords() to convert these coordinates to coordinates for one of the windows in the text view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="strong" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the strong cursor position (may be %NULL)</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> <parameter name="weak" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the weak cursor position (may be %NULL)</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_cursor_visible" c:identifier="gtk_text_view_get_cursor_visible"> <doc xml:space="preserve">Find out whether the cursor should be displayed.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the insertion mark is visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_default_attributes" c:identifier="gtk_text_view_get_default_attributes"> <doc xml:space="preserve">Obtains a copy of the default text attributes. These are the attributes used for text unless a tag overrides them. Youâd typically pass the default attributes in to gtk_text_iter_get_attributes() in order to get the attributes in effect at a given text position. The return value is a copy owned by the caller of this function, and should be freed with gtk_text_attributes_unref().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkTextAttributes</doc> <type name="TextAttributes" c:type="GtkTextAttributes*"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_editable" c:identifier="gtk_text_view_get_editable"> <doc xml:space="preserve">Returns the default editability of the #GtkTextView. Tags in the buffer may override this setting for some ranges of text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether text is editable by default</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_hadjustment" c:identifier="gtk_text_view_get_hadjustment" version="2.22" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Gets the horizontal-scrolling #GtkAdjustment.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_hadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">pointer to the horizontal #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_indent" c:identifier="gtk_text_view_get_indent"> <doc xml:space="preserve">Gets the default indentation of paragraphs in @text_view. Tags in the viewâs buffer may override the default. The indentation may be negative.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">number of pixels of indentation</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_input_hints" c:identifier="gtk_text_view_get_input_hints" version="3.6"> <doc xml:space="preserve">Gets the value of the #GtkTextView:input-hints property.</doc> <return-value transfer-ownership="none"> <type name="InputHints" c:type="GtkInputHints"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_input_purpose" c:identifier="gtk_text_view_get_input_purpose" version="3.6"> <doc xml:space="preserve">Gets the value of the #GtkTextView:input-purpose property.</doc> <return-value transfer-ownership="none"> <type name="InputPurpose" c:type="GtkInputPurpose"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_iter_at_location" c:identifier="gtk_text_view_get_iter_at_location"> <doc xml:space="preserve">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 gtk_text_view_window_to_buffer_coords().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the position is over text</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x position, in buffer coordinates</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y position, in buffer coordinates</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_iter_at_position" c:identifier="gtk_text_view_get_iter_at_position" version="2.6"> <doc xml:space="preserve">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 gtk_text_view_window_to_buffer_coords(). Note that this is different from gtk_text_view_get_iter_at_location(), which returns cursor locations, i.e. positions between characters.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the position is over text</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="trailing" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x position, in buffer coordinates</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y position, in buffer coordinates</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_iter_location" c:identifier="gtk_text_view_get_iter_location"> <doc xml:space="preserve">Gets a rectangle which roughly contains the character at @iter. The rectangle position is in buffer coordinates; use gtk_text_view_buffer_to_window_coords() to convert these coordinates to coordinates for one of the windows in the text view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="location" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">bounds of the character at @iter</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_justification" c:identifier="gtk_text_view_get_justification"> <doc xml:space="preserve">Gets the default justification of paragraphs in @text_view. Tags in the buffer may override the default.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">default justification</doc> <type name="Justification" c:type="GtkJustification"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_left_margin" c:identifier="gtk_text_view_get_left_margin"> <doc xml:space="preserve">Gets the default left margin size of paragraphs in the @text_view. Tags in the buffer may override the default.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">left margin in pixels</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_line_at_y" c:identifier="gtk_text_view_get_line_at_y"> <doc xml:space="preserve">Gets the #GtkTextIter at the start of the line containing the coordinate @y. @y is in buffer coordinates, convert from window coordinates with gtk_text_view_window_to_buffer_coords(). If non-%NULL, @line_top will be filled with the coordinate of the top edge of the line.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="target_iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">a y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="line_top" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for top coordinate of the line</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_line_yrange" c:identifier="gtk_text_view_get_line_yrange"> <doc xml:space="preserve">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 gtk_text_view_buffer_to_window_coords().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for a y coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for a height</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_monospace" c:identifier="gtk_text_view_get_monospace" version="3.16"> <doc xml:space="preserve">Gets the value of the #GtkTextView:monospace property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if monospace fonts are desired</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_overwrite" c:identifier="gtk_text_view_get_overwrite" version="2.4"> <doc xml:space="preserve">Returns whether the #GtkTextView is in overwrite mode or not.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether @text_view is in overwrite mode or not.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_pixels_above_lines" c:identifier="gtk_text_view_get_pixels_above_lines"> <doc xml:space="preserve">Gets the default number of pixels to put above paragraphs. Adding this function with gtk_text_view_get_pixels_below_lines() is equal to the line space between each paragraph.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">default number of pixels above paragraphs</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_pixels_below_lines" c:identifier="gtk_text_view_get_pixels_below_lines"> <doc xml:space="preserve">Gets the value set by gtk_text_view_set_pixels_below_lines(). The line space is the sum of the value returned by this function and the value returned by gtk_text_view_get_pixels_above_lines().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">default number of blank pixels below paragraphs</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_pixels_inside_wrap" c:identifier="gtk_text_view_get_pixels_inside_wrap"> <doc xml:space="preserve">Gets the value set by gtk_text_view_set_pixels_inside_wrap().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">default number of pixels of blank space between wrapped lines</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_right_margin" c:identifier="gtk_text_view_get_right_margin"> <doc xml:space="preserve">Gets the default right margin for text in @text_view. Tags in the buffer may override the default.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">right margin in pixels</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_tabs" c:identifier="gtk_text_view_get_tabs"> <doc xml:space="preserve">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 pango_tab_array_free().</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">copy of default tab array, or %NULL if âstandard" tabs are used; must be freed with pango_tab_array_free().</doc> <type name="Pango.TabArray" c:type="PangoTabArray*"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_top_margin" c:identifier="gtk_text_view_get_top_margin" version="3.18"> <doc xml:space="preserve">Gets the top margin for text in the @text_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">top margin in pixels</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_vadjustment" c:identifier="gtk_text_view_get_vadjustment" version="2.22" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Gets the vertical-scrolling #GtkAdjustment.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_vadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">pointer to the vertical #GtkAdjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="get_visible_rect" c:identifier="gtk_text_view_get_visible_rect"> <doc xml:space="preserve">Fills @visible_rect with the currently-visible region of the buffer, in buffer coordinates. Convert to window coordinates with gtk_text_view_buffer_to_window_coords().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="visible_rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">rectangle to fill</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_window" c:identifier="gtk_text_view_get_window"> <doc xml:space="preserve">Retrieves the #GdkWindow corresponding to an area of the text view; possible windows include the overall widget window, child windows on the left, right, top, bottom, and the window that displays the text buffer. Windows are %NULL and nonexistent if their width or height is 0, and are nonexistent before the widget has been realized.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GdkWindow, or %NULL</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="win" transfer-ownership="none"> <doc xml:space="preserve">window to get</doc> <type name="TextWindowType" c:type="GtkTextWindowType"/> </parameter> </parameters> </method> <method name="get_window_type" c:identifier="gtk_text_view_get_window_type"> <doc xml:space="preserve">Usually used to find out which window an event corresponds to. If you connect to an event signal on @text_view, this function should be called on `event->window` to see which window it was.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the window type.</doc> <type name="TextWindowType" c:type="GtkTextWindowType"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a window type</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="get_wrap_mode" c:identifier="gtk_text_view_get_wrap_mode"> <doc xml:space="preserve">Gets the line wrapping for the view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the line wrap setting</doc> <type name="WrapMode" c:type="GtkWrapMode"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="im_context_filter_keypress" c:identifier="gtk_text_view_im_context_filter_keypress" version="2.22"> <doc xml:space="preserve">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 gtk_im_context_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. |[<!-- language="C" --> static gboolean gtk_foo_bar_key_press_event (GtkWidget *widget, GdkEventKey *event) { guint keyval; gdk_event_get_keyval ((GdkEvent*)event, &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)->key_press_event (widget, event); } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the input method handled the key event.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the key event</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </method> <method name="move_child" c:identifier="gtk_text_view_move_child"> <doc xml:space="preserve">Updates the position of a child, as for gtk_text_view_add_child_in_window().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">child widget already added to the text view</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="xpos" transfer-ownership="none"> <doc xml:space="preserve">new X position in window coordinates</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="ypos" transfer-ownership="none"> <doc xml:space="preserve">new Y position in window coordinates</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="move_mark_onscreen" c:identifier="gtk_text_view_move_mark_onscreen"> <doc xml:space="preserve">Moves a mark within the buffer so that it's located within the currently-visible text area.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the mark moved (wasnât already onscreen)</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> </parameters> </method> <method name="move_visually" c:identifier="gtk_text_view_move_visually"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter moved and is not on the end iterator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">number of characters to move (negative moves left, positive moves right)</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="place_cursor_onscreen" c:identifier="gtk_text_view_place_cursor_onscreen"> <doc xml:space="preserve">Moves the cursor to the currently visible region of the buffer, it it isnât there already.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the cursor had to be moved.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="reset_cursor_blink" c:identifier="gtk_text_view_reset_cursor_blink" version="3.20"> <doc xml:space="preserve">Ensures that the cursor is shown (i.e. not in an 'off' blink interval) and 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 #GtkWidget::key-press-event handler).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="reset_im_context" c:identifier="gtk_text_view_reset_im_context" version="2.22"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> </parameters> </method> <method name="scroll_mark_onscreen" c:identifier="gtk_text_view_scroll_mark_onscreen"> <doc xml:space="preserve">Scrolls @text_view the minimum distance such that @mark is contained within the visible area of the widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a mark in the buffer for @text_view</doc> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> </parameters> </method> <method name="scroll_to_iter" c:identifier="gtk_text_view_scroll_to_iter"> <doc xml:space="preserve">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 gtk_text_view_scroll_to_mark() which saves a point to be scrolled to after line validation.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if scrolling occurred</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="within_margin" transfer-ownership="none"> <doc xml:space="preserve">margin as a [0.0,0.5) fraction of screen size</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="use_align" transfer-ownership="none"> <doc xml:space="preserve">whether to use alignment arguments (if %FALSE, just get the mark onscreen)</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">horizontal alignment of mark within visible area</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">vertical alignment of mark within visible area</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="scroll_to_mark" c:identifier="gtk_text_view_scroll_to_mark"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="mark" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextMark</doc> <type name="TextMark" c:type="GtkTextMark*"/> </parameter> <parameter name="within_margin" transfer-ownership="none"> <doc xml:space="preserve">margin as a [0.0,0.5) fraction of screen size</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="use_align" transfer-ownership="none"> <doc xml:space="preserve">whether to use alignment arguments (if %FALSE, just get the mark onscreen)</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">horizontal alignment of mark within visible area</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="yalign" transfer-ownership="none"> <doc xml:space="preserve">vertical alignment of mark within visible area</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_accepts_tab" c:identifier="gtk_text_view_set_accepts_tab" version="2.4"> <doc xml:space="preserve">Sets the behavior of the text widget when the Tab 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="accepts_tab" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if pressing the Tab key should insert a tab character, %FALSE, if pressing the Tab key should move the keyboard focus.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_border_window_size" c:identifier="gtk_text_view_set_border_window_size"> <doc xml:space="preserve">Sets the width of %GTK_TEXT_WINDOW_LEFT or %GTK_TEXT_WINDOW_RIGHT, or the height of %GTK_TEXT_WINDOW_TOP or %GTK_TEXT_WINDOW_BOTTOM. Automatically destroys the corresponding window if the size is set to 0, and creates the window if the size is set to non-zero. This function can only be used for the âborder windowsâ, and it wonât work with %GTK_TEXT_WINDOW_WIDGET, %GTK_TEXT_WINDOW_TEXT, or %GTK_TEXT_WINDOW_PRIVATE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">window to affect</doc> <type name="TextWindowType" c:type="GtkTextWindowType"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">width or height of the window</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_bottom_margin" c:identifier="gtk_text_view_set_bottom_margin" version="3.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="bottom_margin" transfer-ownership="none"> <doc xml:space="preserve">bottom margin in pixels</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_buffer" c:identifier="gtk_text_view_set_buffer"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </method> <method name="set_cursor_visible" c:identifier="gtk_text_view_set_cursor_visible"> <doc xml:space="preserve">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 #GtkSettings:gtk-keynave-use-caret settings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">whether to show the insertion cursor</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_editable" c:identifier="gtk_text_view_set_editable"> <doc xml:space="preserve">Sets the default editability of the #GtkTextView. You can override this default setting with tags in the buffer, using the âeditableâ attribute of tags.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">whether itâs editable</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_indent" c:identifier="gtk_text_view_set_indent"> <doc xml:space="preserve">Sets the default indentation for paragraphs in @text_view. Tags in the buffer may override the default.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="indent" transfer-ownership="none"> <doc xml:space="preserve">indentation in pixels</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_input_hints" c:identifier="gtk_text_view_set_input_hints" version="3.6"> <doc xml:space="preserve">Sets the #GtkTextView:input-hints property, which allows input methods to fine-tune their behaviour.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="hints" transfer-ownership="none"> <doc xml:space="preserve">the hints</doc> <type name="InputHints" c:type="GtkInputHints"/> </parameter> </parameters> </method> <method name="set_input_purpose" c:identifier="gtk_text_view_set_input_purpose" version="3.6"> <doc xml:space="preserve">Sets the #GtkTextView:input-purpose property which can be used by on-screen keyboards and other input methods to adjust their behaviour.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="purpose" transfer-ownership="none"> <doc xml:space="preserve">the purpose</doc> <type name="InputPurpose" c:type="GtkInputPurpose"/> </parameter> </parameters> </method> <method name="set_justification" c:identifier="gtk_text_view_set_justification"> <doc xml:space="preserve">Sets the default justification of text in @text_view. Tags in the viewâs buffer may override the default.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="justification" transfer-ownership="none"> <doc xml:space="preserve">justification</doc> <type name="Justification" c:type="GtkJustification"/> </parameter> </parameters> </method> <method name="set_left_margin" c:identifier="gtk_text_view_set_left_margin"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="left_margin" transfer-ownership="none"> <doc xml:space="preserve">left margin in pixels</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_monospace" c:identifier="gtk_text_view_set_monospace" version="3.16"> <doc xml:space="preserve">Sets the #GtkTextView:monospace property, which indicates that the text view should use monospace fonts.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="monospace" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to request monospace styling</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_overwrite" c:identifier="gtk_text_view_set_overwrite" version="2.4"> <doc xml:space="preserve">Changes the #GtkTextView overwrite mode.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="overwrite" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to turn on overwrite mode, %FALSE to turn it off</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_pixels_above_lines" c:identifier="gtk_text_view_set_pixels_above_lines"> <doc xml:space="preserve">Sets the default number of blank pixels above paragraphs in @text_view. Tags in the buffer for @text_view may override the defaults.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="pixels_above_lines" transfer-ownership="none"> <doc xml:space="preserve">pixels above paragraphs</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_pixels_below_lines" c:identifier="gtk_text_view_set_pixels_below_lines"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="pixels_below_lines" transfer-ownership="none"> <doc xml:space="preserve">pixels below paragraphs</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_pixels_inside_wrap" c:identifier="gtk_text_view_set_pixels_inside_wrap"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="pixels_inside_wrap" transfer-ownership="none"> <doc xml:space="preserve">default number of pixels between wrapped lines</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_right_margin" c:identifier="gtk_text_view_set_right_margin"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="right_margin" transfer-ownership="none"> <doc xml:space="preserve">right margin in pixels</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_tabs" c:identifier="gtk_text_view_set_tabs"> <doc xml:space="preserve">Sets the default tab stops for paragraphs in @text_view. Tags in the buffer may override the default.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="tabs" transfer-ownership="none"> <doc xml:space="preserve">tabs as a #PangoTabArray</doc> <type name="Pango.TabArray" c:type="PangoTabArray*"/> </parameter> </parameters> </method> <method name="set_top_margin" c:identifier="gtk_text_view_set_top_margin" version="3.18"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="top_margin" transfer-ownership="none"> <doc xml:space="preserve">top margin in pixels</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_wrap_mode" c:identifier="gtk_text_view_set_wrap_mode"> <doc xml:space="preserve">Sets the line wrapping for the view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="wrap_mode" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWrapMode</doc> <type name="WrapMode" c:type="GtkWrapMode"/> </parameter> </parameters> </method> <method name="starts_display_line" c:identifier="gtk_text_view_starts_display_line"> <doc xml:space="preserve">Determines whether @iter is at the start of a display line. See gtk_text_view_forward_display_line() for an explanation of display lines vs. paragraphs.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter begins a wrapped line</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextIter</doc> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> </parameters> </method> <method name="window_to_buffer_coords" c:identifier="gtk_text_view_window_to_buffer_coords"> <doc xml:space="preserve">Converts coordinates on the window identified by @win to buffer coordinates, storing the result in (@buffer_x,@buffer_y). Note that you canât convert coordinates for a nonexisting window (see gtk_text_view_set_border_window_size()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="text_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextView</doc> <type name="TextView" c:type="GtkTextView*"/> </instance-parameter> <parameter name="win" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextWindowType except %GTK_TEXT_WINDOW_PRIVATE</doc> <type name="TextWindowType" c:type="GtkTextWindowType"/> </parameter> <parameter name="window_x" transfer-ownership="none"> <doc xml:space="preserve">window x coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="window_y" transfer-ownership="none"> <doc xml:space="preserve">window y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="buffer_x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">buffer x coordinate return location or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="buffer_y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">buffer y coordinate return location or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <property name="accepts-tab" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="bottom-margin" version="3.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkWidget:margin-bottom.</doc> <type name="gint" c:type="gint"/> </property> <property name="buffer" writable="1" transfer-ownership="none"> <type name="TextBuffer"/> </property> <property name="cursor-visible" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="editable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="im-module" version="2.16" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Which IM (input method) module should be used for this text_view. See #GtkIMContext. Setting this to a non-%NULL value overrides the system-wide IM module setting. See the GtkSettings #GtkSettings:gtk-im-module property.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="indent" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="input-hints" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Additional hints (beyond #GtkTextView:input-purpose) that allow input methods to fine-tune their behaviour.</doc> <type name="InputHints"/> </property> <property name="input-purpose" version="3.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The purpose of this text field. This property can be used by on-screen keyboards and other input methods to adjust their behaviour.</doc> <type name="InputPurpose"/> </property> <property name="justification" writable="1" transfer-ownership="none"> <type name="Justification"/> </property> <property name="left-margin" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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. Don't confuse this property with #GtkWidget:margin-left.</doc> <type name="gint" c:type="gint"/> </property> <property name="monospace" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="overwrite" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="pixels-above-lines" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="pixels-below-lines" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="pixels-inside-wrap" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="populate-all" version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If :populate-all is %TRUE, the #GtkTextView::populate-popup signal is also emitted for touch popups.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="right-margin" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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. Don't confuse this property with #GtkWidget:margin-right.</doc> <type name="gint" c:type="gint"/> </property> <property name="tabs" writable="1" transfer-ownership="none"> <type name="Pango.TabArray"/> </property> <property name="top-margin" version="3.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 #GtkWidget:margin-top.</doc> <type name="gint" c:type="gint"/> </property> <property name="wrap-mode" writable="1" transfer-ownership="none"> <type name="WrapMode"/> </property> <field name="parent_instance"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="TextViewPrivate" c:type="GtkTextViewPrivate*"/> </field> <glib:signal name="backspace" when="last" action="1"> <doc xml:space="preserve">The ::backspace signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it. The default bindings for this signal are Backspace and Shift-Backspace.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="copy-clipboard" when="last" action="1"> <doc xml:space="preserve">The ::copy-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to copy the selection to the clipboard. The default bindings for this signal are Ctrl-c and Ctrl-Insert.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="cut-clipboard" when="last" action="1"> <doc xml:space="preserve">The ::cut-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cut the selection to the clipboard. The default bindings for this signal are Ctrl-x and Shift-Delete.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="delete-from-cursor" when="last" action="1"> <doc xml:space="preserve">The ::delete-from-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a text deletion. 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 Delete for deleting a character, Ctrl-Delete for deleting a word and Ctrl-Backspace for deleting a word backwords.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the granularity of the deletion, as a #GtkDeleteType</doc> <type name="DeleteType"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">the number of @type units to delete</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="extend-selection" when="last" version="3.16"> <doc xml:space="preserve">The ::extend-selection signal is emitted when the selection needs to be extended at @location.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%GDK_EVENT_STOP to stop other handlers from being invoked for the event. %GDK_EVENT_PROPAGATE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="granularity" transfer-ownership="none"> <doc xml:space="preserve">the granularity type</doc> <type name="TextExtendSelection"/> </parameter> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">the location where to extend the selection</doc> <type name="TextIter"/> </parameter> <parameter name="start" transfer-ownership="none"> <doc xml:space="preserve">where the selection should start</doc> <type name="TextIter"/> </parameter> <parameter name="end" transfer-ownership="none"> <doc xml:space="preserve">where the selection should end</doc> <type name="TextIter"/> </parameter> </parameters> </glib:signal> <glib:signal name="insert-at-cursor" when="last" action="1"> <doc xml:space="preserve">The ::insert-at-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates the insertion of a fixed string at the cursor. This signal has no default bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="string" transfer-ownership="none"> <doc xml:space="preserve">the string to insert</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="insert-emoji" when="last" action="1" version="3.22.27"> <doc xml:space="preserve">The ::insert-emoji signal is a [keybinding signal][GtkBindingSignal] which gets emitted to present the Emoji chooser for the @text_view. The default bindings for this signal are Ctrl-. and Ctrl-;</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="move-cursor" when="last" action="1"> <doc xml:space="preserve">The ::move-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement. 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 Shift modifier extends the selection, the variant without the Shift modifer does not. There are too many key combinations to list them all here. - Arrow keys move by individual characters/lines - Ctrl-arrow key combinations move by words/paragraphs - Home/End keys move to the ends of the buffer - PageUp/PageDown keys move vertically by pages - Ctrl-PageUp/PageDown keys move horizontally by pages</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">the granularity of the move, as a #GtkMovementStep</doc> <type name="MovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">the number of @step units to move</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the move should extend the selection</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-viewport" when="last" action="1"> <doc xml:space="preserve">The ::move-viewport signal is a [keybinding signal][GtkBindingSignal] 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">the granularity of the movement, as a #GtkScrollStep</doc> <type name="ScrollStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <doc xml:space="preserve">the number of @step units to move</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="paste-clipboard" when="last" action="1"> <doc xml:space="preserve">The ::paste-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to paste the contents of the clipboard into the text view. The default bindings for this signal are Ctrl-v and Shift-Insert.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="populate-popup" when="last"> <doc xml:space="preserve">The ::populate-popup signal gets emitted before showing the context menu of the text view. If you need to add items to the context menu, connect to this signal and append your items to the @popup, which will be a #GtkMenu in this case. If #GtkTextView:populate-all is %TRUE, this signal will also be emitted to populate touch popups. In this case, @popup will be a different container, e.g. a #GtkToolbar. The signal handler should not make assumptions about the type of @widget, but check whether @popup is a #GtkMenu or #GtkToolbar or another kind of container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="popup" transfer-ownership="none"> <doc xml:space="preserve">the container that is being populated</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="preedit-changed" when="last" action="1" version="2.20"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="preedit" transfer-ownership="none"> <doc xml:space="preserve">the current preedit string</doc> <type name="utf8" c:type="gchar*"/> </parameter> </parameters> </glib:signal> <glib:signal name="select-all" when="last" action="1"> <doc xml:space="preserve">The ::select-all signal is a [keybinding signal][GtkBindingSignal] which gets emitted to select or unselect the complete contents of the text view. The default bindings for this signal are Ctrl-a and Ctrl-/ for selecting and Shift-Ctrl-a and Ctrl-\ for unselecting.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="select" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to select, %FALSE to unselect</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="set-anchor" when="last" action="1"> <doc xml:space="preserve">The ::set-anchor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates setting the "anchor" mark. The "anchor" mark gets placed at the same position as the "insert" mark. This signal has no default bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="toggle-cursor-visible" when="last" action="1"> <doc xml:space="preserve">The ::toggle-cursor-visible signal is a [keybinding signal][GtkBindingSignal] which gets emitted to toggle the #GtkTextView:cursor-visible property. The default binding for this signal is F7.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="toggle-overwrite" when="last" action="1"> <doc xml:space="preserve">The ::toggle-overwrite signal is a [keybinding signal][GtkBindingSignal] which gets emitted to toggle the overwrite mode of the text view. The default bindings for this signal is Insert.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="TextViewAccessible" c:symbol-prefix="text_view_accessible" c:type="GtkTextViewAccessible" parent="ContainerAccessible" glib:type-name="GtkTextViewAccessible" glib:get-type="gtk_text_view_accessible_get_type" glib:type-struct="TextViewAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.EditableText"/> <implements name="Atk.StreamableContent"/> <implements name="Atk.Text"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="TextViewAccessiblePrivate" c:type="GtkTextViewAccessiblePrivate*"/> </field> </class> <record name="TextViewAccessibleClass" c:type="GtkTextViewAccessibleClass" glib:is-gtype-struct-for="TextViewAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="TextViewAccessiblePrivate" c:type="GtkTextViewAccessiblePrivate" disguised="1"> </record> <record name="TextViewClass" c:type="GtkTextViewClass" glib:is-gtype-struct-for="TextView"> <field name="parent_class"> <doc xml:space="preserve">The object class structure needs to be the first</doc> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="populate_popup"> <callback name="populate_popup"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> <parameter name="popup" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="move_cursor"> <callback name="move_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="extend_selection" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="set_anchor"> <callback name="set_anchor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> </parameters> </callback> </field> <field name="insert_at_cursor"> <callback name="insert_at_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> <parameter name="str" transfer-ownership="none"> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="delete_from_cursor"> <callback name="delete_from_cursor"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> <parameter name="type" transfer-ownership="none"> <type name="DeleteType" c:type="GtkDeleteType"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="backspace"> <callback name="backspace"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> </parameters> </callback> </field> <field name="cut_clipboard"> <callback name="cut_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> </parameters> </callback> </field> <field name="copy_clipboard"> <callback name="copy_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> </parameters> </callback> </field> <field name="paste_clipboard"> <callback name="paste_clipboard"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> </parameters> </callback> </field> <field name="toggle_overwrite"> <callback name="toggle_overwrite"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> </parameters> </callback> </field> <field name="create_buffer" introspectable="0"> <callback name="create_buffer" introspectable="0"> <return-value> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> </parameters> </callback> </field> <field name="draw_layer"> <callback name="draw_layer"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> <parameter name="layer" transfer-ownership="none"> <type name="TextViewLayer" c:type="GtkTextViewLayer"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </callback> </field> <field name="extend_selection"> <callback name="extend_selection"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> <parameter name="granularity" transfer-ownership="none"> <type name="TextExtendSelection" c:type="GtkTextExtendSelection"/> </parameter> <parameter name="location" transfer-ownership="none"> <type name="TextIter" c:type="const GtkTextIter*"/> </parameter> <parameter name="start" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> <parameter name="end" transfer-ownership="none"> <type name="TextIter" c:type="GtkTextIter*"/> </parameter> </parameters> </callback> </field> <field name="insert_emoji"> <callback name="insert_emoji"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="text_view" transfer-ownership="none"> <type name="TextView" c:type="GtkTextView*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <enumeration name="TextViewLayer" glib:type-name="GtkTextViewLayer" glib:get-type="gtk_text_view_layer_get_type" c:type="GtkTextViewLayer"> <doc xml:space="preserve">Used to reference the layers of #GtkTextView for the purpose of customized drawing with the ::draw_layer vfunc.</doc> <member name="below" value="0" c:identifier="GTK_TEXT_VIEW_LAYER_BELOW" glib:nick="below"> <doc xml:space="preserve">Old deprecated layer, use %GTK_TEXT_VIEW_LAYER_BELOW_TEXT instead</doc> </member> <member name="above" value="1" c:identifier="GTK_TEXT_VIEW_LAYER_ABOVE" glib:nick="above"> <doc xml:space="preserve">Old deprecated layer, use %GTK_TEXT_VIEW_LAYER_ABOVE_TEXT instead</doc> </member> <member name="below_text" value="2" c:identifier="GTK_TEXT_VIEW_LAYER_BELOW_TEXT" glib:nick="below-text"> <doc xml:space="preserve">The layer rendered below the text (but above the background). Since: 3.20</doc> </member> <member name="above_text" value="3" c:identifier="GTK_TEXT_VIEW_LAYER_ABOVE_TEXT" glib:nick="above-text"> <doc xml:space="preserve">The layer rendered above the text. Since: 3.20</doc> </member> </enumeration> <record name="TextViewPrivate" c:type="GtkTextViewPrivate" disguised="1"> </record> <enumeration name="TextWindowType" glib:type-name="GtkTextWindowType" glib:get-type="gtk_text_window_type_get_type" c:type="GtkTextWindowType"> <doc xml:space="preserve">Used to reference the parts of #GtkTextView.</doc> <member name="private" value="0" c:identifier="GTK_TEXT_WINDOW_PRIVATE" glib:nick="private"> <doc xml:space="preserve">Invalid value, used as a marker</doc> </member> <member name="widget" value="1" c:identifier="GTK_TEXT_WINDOW_WIDGET" glib:nick="widget"> <doc xml:space="preserve">Window that floats over scrolling areas.</doc> </member> <member name="text" value="2" c:identifier="GTK_TEXT_WINDOW_TEXT" glib:nick="text"> <doc xml:space="preserve">Scrollable text window.</doc> </member> <member name="left" value="3" c:identifier="GTK_TEXT_WINDOW_LEFT" glib:nick="left"> <doc xml:space="preserve">Left side border window.</doc> </member> <member name="right" value="4" c:identifier="GTK_TEXT_WINDOW_RIGHT" glib:nick="right"> <doc xml:space="preserve">Right side border window.</doc> </member> <member name="top" value="5" c:identifier="GTK_TEXT_WINDOW_TOP" glib:nick="top"> <doc xml:space="preserve">Top border window.</doc> </member> <member name="bottom" value="6" c:identifier="GTK_TEXT_WINDOW_BOTTOM" glib:nick="bottom"> <doc xml:space="preserve">Bottom border window.</doc> </member> </enumeration> <record name="ThemeEngine" c:type="GtkThemeEngine" disguised="1"> </record> <class name="ThemingEngine" c:symbol-prefix="theming_engine" c:type="GtkThemingEngine" parent="GObject.Object" glib:type-name="GtkThemingEngine" glib:get-type="gtk_theming_engine_get_type" glib:type-struct="ThemingEngineClass"> <doc xml:space="preserve">#GtkThemingEngine was the object used for rendering themed content in GTK+ widgets. It used to allow overriding GTK+'s default implementation of rendering functions by allowing engines to be loaded as modules. #GtkThemingEngine has been deprecated in GTK+ 3.14 and will be ignored for rendering. The advancements in CSS theming are good enough to allow themers to achieve their goals without the need to modify source code.</doc> <function name="load" c:identifier="gtk_theming_engine_load" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Loads and initializes a theming engine module from the standard directories.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A theming engine, or %NULL if the engine @name doesnât exist.</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">Theme engine name to load</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="register_property" c:identifier="gtk_theming_engine_register_property" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Registers a property so it can be used in the CSS file format, on the CSS file the property will look like "-${@name_space}-${property_name}". being ${property_name} the given to @pspec. @name_space will usually be the theme engine name. For any type a @parse_func may be provided, being this function used for turning any property value (between â:â and â;â) in CSS to the #GValue needed. For basic types there is already builtin parsing support, so %NULL may be provided for these cases. Engines must ensure property registration happens exactly once, usually GTK+ deals with theming engines as singletons, so this should be guaranteed to happen once, but bear this in mind when creating #GtkThemeEngines yourself. In order to make use of the custom registered properties in the CSS file, make sure the engine is loaded first by specifying the engine property, either in a previous rule or within the same one. |[ * { engine: someengine; -SomeEngine-custom-property: 2; } ]|</doc> <doc-deprecated xml:space="preserve">Code should use the default properties provided by CSS.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="name_space" transfer-ownership="none"> <doc xml:space="preserve">namespace for the property name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="parse_func" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">parsing function to use, or %NULL</doc> <type name="StylePropertyParser" c:type="GtkStylePropertyParser"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec for the new property</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </function> <virtual-method name="render_activity"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_arrow"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="angle" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="size" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_background"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_check"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_expander"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_extension"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_frame"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_frame_gap"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="xy0_gap" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="xy1_gap" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_handle"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_icon"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_icon_pixbuf" introspectable="0"> <return-value> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="source" transfer-ownership="none"> <type name="IconSource" c:type="const GtkIconSource*"/> </parameter> <parameter name="size" transfer-ownership="none"> <type name="IconSize" c:type="GtkIconSize"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_icon_surface"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="surface" transfer-ownership="none"> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_layout"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="layout" transfer-ownership="none"> <type name="Pango.Layout" c:type="PangoLayout*"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_line"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x0" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y0" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="x1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_option"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </virtual-method> <virtual-method name="render_slider"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </virtual-method> <method name="get" c:identifier="gtk_theming_engine_get" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Retrieves several style property values that apply to the currently rendered element.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve values for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">property name /return value pairs, followed by %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="get_background_color" c:identifier="gtk_theming_engine_get_background_color" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the background color for a given state.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the color for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the background color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_border" c:identifier="gtk_theming_engine_get_border" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the border for a given state as a #GtkBorder.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the border for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="border" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the border settings</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </method> <method name="get_border_color" c:identifier="gtk_theming_engine_get_border_color" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the border color for a given state.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the color for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the border color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_color" c:identifier="gtk_theming_engine_get_color" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the foreground color for a given state.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the color for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the foreground color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="get_direction" c:identifier="gtk_theming_engine_get_direction" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the widget direction used for rendering.</doc> <doc-deprecated xml:space="preserve">Use gtk_theming_engine_get_state() and check for #GTK_STATE_FLAG_DIR_LTR and #GTK_STATE_FLAG_DIR_RTL instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widget direction</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> </parameters> </method> <method name="get_font" c:identifier="gtk_theming_engine_get_font" version="3.0" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Returns the font description for a given state.</doc> <doc-deprecated xml:space="preserve">Use gtk_theming_engine_get()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #PangoFontDescription for the given state. This object is owned by GTK+ and should not be freed.</doc> <type name="Pango.FontDescription" c:type="const PangoFontDescription*"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the font for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> </parameters> </method> <method name="get_junction_sides" c:identifier="gtk_theming_engine_get_junction_sides" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the widget direction used for rendering.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widget direction</doc> <type name="JunctionSides" c:type="GtkJunctionSides"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> </parameters> </method> <method name="get_margin" c:identifier="gtk_theming_engine_get_margin" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the margin for a given state as a #GtkBorder.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the border for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="margin" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the margin settings</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </method> <method name="get_padding" c:identifier="gtk_theming_engine_get_padding" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the padding for a given state as a #GtkBorder.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the padding for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="padding" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return value for the padding settings</doc> <type name="Border" c:type="GtkBorder*"/> </parameter> </parameters> </method> <method name="get_path" c:identifier="gtk_theming_engine_get_path" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the widget path used for style matching.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> </parameters> </method> <method name="get_property" c:identifier="gtk_theming_engine_get_property" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets a property value as retrieved from the style settings that apply to the currently rendered element.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="property" transfer-ownership="none"> <doc xml:space="preserve">the property name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve the value for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="full"> <doc xml:space="preserve">return location for the property value, you must free this memory using g_value_unset() once you are done with it.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="get_screen" c:identifier="gtk_theming_engine_get_screen" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns the #GdkScreen to which @engine currently rendering to.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GdkScreen, or %NULL.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> </parameters> </method> <method name="get_state" c:identifier="gtk_theming_engine_get_state" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">returns the state used when rendering.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the state flags</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> </parameters> </method> <method name="get_style" c:identifier="gtk_theming_engine_get_style" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Retrieves several widget style properties from @engine according to the currently rendered contentâs style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">property name /return value pairs, followed by %NULL</doc> <varargs/> </parameter> </parameters> </method> <method name="get_style_property" c:identifier="gtk_theming_engine_get_style_property" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the value for a widget style property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the widget style property</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">Return location for the property value, free with g_value_unset() after use.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="get_style_valist" c:identifier="gtk_theming_engine_get_style_valist" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Retrieves several widget style properties from @engine according to the currently rendered contentâs style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="args" transfer-ownership="none"> <doc xml:space="preserve">va_list of property name/return location pairs, followed by %NULL</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="get_valist" c:identifier="gtk_theming_engine_get_valist" version="3.0" introspectable="0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Retrieves several style property values that apply to the currently rendered element.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state to retrieve values for</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="args" transfer-ownership="none"> <doc xml:space="preserve">va_list of property name/return location pairs, followed by %NULL</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="has_class" c:identifier="gtk_theming_engine_has_class" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns %TRUE if the currently rendered contents have defined the given class name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @engine has @class_name defined</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="style_class" transfer-ownership="none"> <doc xml:space="preserve">class name to look up</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="has_region" c:identifier="gtk_theming_engine_has_region" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns %TRUE if the currently rendered contents have the region defined. If @flags_return is not %NULL, it is set to the flags affecting the region.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if region is defined</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="style_region" transfer-ownership="none"> <doc xml:space="preserve">a region name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for region flags</doc> <type name="RegionFlags" c:type="GtkRegionFlags*"/> </parameter> </parameters> </method> <method name="lookup_color" c:identifier="gtk_theming_engine_lookup_color" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Looks up and resolves a color name in the current styleâs color map.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @color_name was found and resolved, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="color_name" transfer-ownership="none"> <doc xml:space="preserve">color name to lookup</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">Return location for the looked up color</doc> <type name="Gdk.RGBA" c:type="GdkRGBA*"/> </parameter> </parameters> </method> <method name="state_is_running" c:identifier="gtk_theming_engine_state_is_running" version="3.0" deprecated="1" deprecated-version="3.6"> <doc xml:space="preserve">Returns %TRUE if there is a transition animation running for the current region (see gtk_style_context_push_animatable_region()). If @progress is not %NULL, the animation progress will be returned there, 0.0 means the state is closest to being %FALSE, while 1.0 means itâs closest to being %TRUE. This means transition animations will run from 0 to 1 when @state is being set to %TRUE and from 1 to 0 when itâs being set to %FALSE.</doc> <doc-deprecated xml:space="preserve">Always returns %FALSE</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there is a running transition animation for @state.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="engine" transfer-ownership="none"> <doc xml:space="preserve">a #GtkThemingEngine</doc> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">a widget state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="progress" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the transition progress</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </method> <property name="name" version="3.0" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">The theming engine name, this name will be used when registering custom properties, for a theming engine named "Clearlooks" registering a "glossy" custom property, it could be referenced in the CSS file as |[ -Clearlooks-glossy: true; ]|</doc> <type name="utf8" c:type="gchar*"/> </property> <field name="parent_object"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="ThemingEnginePrivate" c:type="GtkThemingEnginePrivate*"/> </field> </class> <record name="ThemingEngineClass" c:type="GtkThemingEngineClass" glib:is-gtype-struct-for="ThemingEngine"> <doc xml:space="preserve">Base class for theming engines.</doc> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="render_line"> <callback name="render_line"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x0" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y0" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="x1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y1" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_background"> <callback name="render_background"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_frame"> <callback name="render_frame"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_frame_gap"> <callback name="render_frame_gap"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="xy0_gap" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="xy1_gap" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_extension"> <callback name="render_extension"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </callback> </field> <field name="render_check"> <callback name="render_check"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_option"> <callback name="render_option"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_arrow"> <callback name="render_arrow"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="angle" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="size" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_expander"> <callback name="render_expander"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_focus"> <callback name="render_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_layout"> <callback name="render_layout"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="layout" transfer-ownership="none"> <type name="Pango.Layout" c:type="PangoLayout*"/> </parameter> </parameters> </callback> </field> <field name="render_slider"> <callback name="render_slider"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </callback> </field> <field name="render_handle"> <callback name="render_handle"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_activity"> <callback name="render_activity"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_icon_pixbuf" introspectable="0"> <callback name="render_icon_pixbuf" introspectable="0"> <return-value> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="source" transfer-ownership="none"> <type name="IconSource" c:type="const GtkIconSource*"/> </parameter> <parameter name="size" transfer-ownership="none"> <type name="IconSize" c:type="GtkIconSize"/> </parameter> </parameters> </callback> </field> <field name="render_icon"> <callback name="render_icon"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="render_icon_surface"> <callback name="render_icon_surface"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="engine" transfer-ownership="none"> <type name="ThemingEngine" c:type="GtkThemingEngine*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="surface" transfer-ownership="none"> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </callback> </field> <field name="padding" readable="0" private="1"> <array zero-terminated="0" c:type="gpointer" fixed-size="14"> <type name="gpointer" c:type="gpointer"/> </array> </field> </record> <record name="ThemingEnginePrivate" c:type="GtkThemingEnginePrivate" disguised="1"> </record> <callback name="TickCallback" c:type="GtkTickCallback" version="3.8"> <doc xml:space="preserve">Callback type for adding a function to update animations. See gtk_widget_add_tick_callback().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%G_SOURCE_CONTINUE if the tick callback should continue to be called, %G_SOURCE_REMOVE if the tick callback should be removed.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="frame_clock" transfer-ownership="none"> <doc xml:space="preserve">the frame clock for the widget (same as calling gtk_widget_get_frame_clock())</doc> <type name="Gdk.FrameClock" c:type="GdkFrameClock*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data passed to gtk_widget_add_tick_callback().</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="ToggleAction" c:symbol-prefix="toggle_action" c:type="GtkToggleAction" parent="Action" glib:type-name="GtkToggleAction" glib:get-type="gtk_toggle_action_get_type" glib:type-struct="ToggleActionClass"> <doc xml:space="preserve">A #GtkToggleAction corresponds roughly to a #GtkCheckMenuItem. It has an âactiveâ state specifying whether the action has been checked or not.</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_toggle_action_new" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkToggleAction object. To add the action to a #GtkActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkToggleAction</doc> <type name="ToggleAction" c:type="GtkToggleAction*"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">A unique name for the action</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The label displayed in menu items and on buttons, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="tooltip" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A tooltip for the action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="stock_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The stock icon to display in widgets representing the action, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="toggled" invoker="toggled" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Emits the âtoggledâ signal on the toggle action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="ToggleAction" c:type="GtkToggleAction*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_active" c:identifier="gtk_toggle_action_get_active" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the checked state of the toggle action.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the checked state of the toggle action</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="ToggleAction" c:type="GtkToggleAction*"/> </instance-parameter> </parameters> </method> <method name="get_draw_as_radio" c:identifier="gtk_toggle_action_get_draw_as_radio" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns whether the action should have proxies like a radio action.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the action should have proxies like a radio action.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="ToggleAction" c:type="GtkToggleAction*"/> </instance-parameter> </parameters> </method> <method name="set_active" c:identifier="gtk_toggle_action_set_active" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the checked state on the toggle action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="ToggleAction" c:type="GtkToggleAction*"/> </instance-parameter> <parameter name="is_active" transfer-ownership="none"> <doc xml:space="preserve">whether the action should be checked or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_draw_as_radio" c:identifier="gtk_toggle_action_set_draw_as_radio" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets whether the action should have proxies like a radio action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="ToggleAction" c:type="GtkToggleAction*"/> </instance-parameter> <parameter name="draw_as_radio" transfer-ownership="none"> <doc xml:space="preserve">whether the action should have proxies like a radio action</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="toggled" c:identifier="gtk_toggle_action_toggled" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Emits the âtoggledâ signal on the toggle action.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="ToggleAction" c:type="GtkToggleAction*"/> </instance-parameter> </parameters> </method> <property name="active" version="2.10" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the toggle action should be active.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="draw-as-radio" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the proxies for this action look like radio action proxies. This is an appearance property and thus only applies if #GtkActivatable:use-action-appearance is %TRUE.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="Action" c:type="GtkAction"/> </field> <field name="private_data" readable="0" private="1"> <type name="ToggleActionPrivate" c:type="GtkToggleActionPrivate*"/> </field> <glib:signal name="toggled" when="first" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Should be connected if you wish to perform an action whenever the #GtkToggleAction state is changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="ToggleActionClass" c:type="GtkToggleActionClass" glib:is-gtype-struct-for="ToggleAction"> <field name="parent_class"> <type name="ActionClass" c:type="GtkActionClass"/> </field> <field name="toggled"> <callback name="toggled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action object</doc> <type name="ToggleAction" c:type="GtkToggleAction*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ToggleActionEntry" c:type="GtkToggleActionEntry" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">#GtkToggleActionEntry structs are used with gtk_action_group_add_toggle_actions() to construct toggle actions.</doc> <field name="name" writable="1"> <doc xml:space="preserve">The name of the action.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="stock_id" writable="1"> <doc xml:space="preserve">The stock id for the action, or the name of an icon from the icon theme.</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="label" writable="1"> <doc xml:space="preserve">The label for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="accelerator" writable="1"> <doc xml:space="preserve">The accelerator for the action, in the format understood by gtk_accelerator_parse().</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="tooltip" writable="1"> <doc xml:space="preserve">The tooltip for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().</doc> <type name="utf8" c:type="const gchar*"/> </field> <field name="callback" writable="1"> <doc xml:space="preserve">The function to call when the action is activated.</doc> <type name="GObject.Callback" c:type="GCallback"/> </field> <field name="is_active" writable="1"> <doc xml:space="preserve">The initial state of the toggle action.</doc> <type name="gboolean" c:type="gboolean"/> </field> </record> <record name="ToggleActionPrivate" c:type="GtkToggleActionPrivate" disguised="1"> </record> <class name="ToggleButton" c:symbol-prefix="toggle_button" c:type="GtkToggleButton" parent="Button" glib:type-name="GtkToggleButton" glib:get-type="gtk_toggle_button_get_type" glib:type-struct="ToggleButtonClass"> <doc xml:space="preserve">A #GtkToggleButton is a #GtkButton which will remain âpressed-inâ when clicked. Clicking again will cause the toggle button to return to its normal state. A toggle button is created by calling either gtk_toggle_button_new() or gtk_toggle_button_new_with_label(). If using the former, it is advisable to pack a widget, (such as a #GtkLabel and/or a #GtkImage), into the toggle buttonâs container. (See #GtkButton for more information). The state of a #GtkToggleButton can be set specifically using gtk_toggle_button_set_active(), and retrieved using gtk_toggle_button_get_active(). To simply switch the state of a toggle button, use gtk_toggle_button_toggled(). # CSS nodes GtkToggleButton has a single CSS node with name button. To differentiate it from a plain #GtkButton, it gets the .toggle style class. ## Creating two #GtkToggleButton widgets. |[<!-- language="C" --> static void output_state (GtkToggleButton *source, gpointer user_data) { printf ("Active: %d\n", gtk_toggle_button_get_active (source)); } void make_toggles (void) { GtkWidget *window, *toggle1, *toggle2; GtkWidget *box; const char *text; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); text = "Hi, Iâm a toggle button."; toggle1 = gtk_toggle_button_new_with_label (text); // Makes this toggle button invisible gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle1), TRUE); g_signal_connect (toggle1, "toggled", G_CALLBACK (output_state), NULL); gtk_container_add (GTK_CONTAINER (box), toggle1); text = "Hi, Iâm a toggle button."; toggle2 = gtk_toggle_button_new_with_label (text); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle2), FALSE); g_signal_connect (toggle2, "toggled", G_CALLBACK (output_state), NULL); gtk_container_add (GTK_CONTAINER (box), toggle2); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_show_all (window); } ]|</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_toggle_button_new"> <doc xml:space="preserve">Creates a new toggle button. A widget should be packed into the button, as in gtk_button_new().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new toggle button.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_label" c:identifier="gtk_toggle_button_new_with_label"> <doc xml:space="preserve">Creates a new toggle button with a text label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new toggle button.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a string containing the message to be placed in the toggle button.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_with_mnemonic" c:identifier="gtk_toggle_button_new_with_mnemonic"> <doc xml:space="preserve">Creates a new #GtkToggleButton containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in @label indicate the mnemonic for the button.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkToggleButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the text of the button, with an underscore in front of the mnemonic character</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="toggled" invoker="toggled"> <doc xml:space="preserve">Emits the #GtkToggleButton::toggled signal on the #GtkToggleButton. There is no good reason for an application ever to call this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton.</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_active" c:identifier="gtk_toggle_button_get_active"> <doc xml:space="preserve">Queries a #GtkToggleButton and returns its current state. Returns %TRUE if the toggle button is pressed in and %FALSE if it is raised.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #gboolean value.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton.</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </instance-parameter> </parameters> </method> <method name="get_inconsistent" c:identifier="gtk_toggle_button_get_inconsistent"> <doc xml:space="preserve">Gets the value set by gtk_toggle_button_set_inconsistent().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the button is displayed as inconsistent, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </instance-parameter> </parameters> </method> <method name="get_mode" c:identifier="gtk_toggle_button_get_mode"> <doc xml:space="preserve">Retrieves whether the button is displayed as a separate indicator and label. See gtk_toggle_button_set_mode().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the togglebutton is drawn as a separate indicator and label.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </instance-parameter> </parameters> </method> <method name="set_active" c:identifier="gtk_toggle_button_set_active"> <doc xml:space="preserve">Sets the status of the toggle button. Set to %TRUE if you want the GtkToggleButton to be âpressed inâ, and %FALSE to raise it. This action causes the #GtkToggleButton::toggled signal and the #GtkButton::clicked signal to be emitted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton.</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </instance-parameter> <parameter name="is_active" transfer-ownership="none"> <doc xml:space="preserve">%TRUE or %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_inconsistent" c:identifier="gtk_toggle_button_set_inconsistent"> <doc xml:space="preserve">If the user has selected a range of elements (such as some text or spreadsheet cells) that are affected by a toggle button, and the current values in that range are inconsistent, you may want to display the toggle in an âin betweenâ state. This function turns on âin betweenâ display. Normally you would turn off the inconsistent state again if the user toggles the toggle button. This has to be done manually, gtk_toggle_button_set_inconsistent() only affects visual appearance, it doesnât affect the semantics of the button.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if state is inconsistent</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_mode" c:identifier="gtk_toggle_button_set_mode"> <doc xml:space="preserve">Sets whether the button is displayed as a separate indicator and label. You can call this function on a checkbutton or a radiobutton with @draw_indicator = %FALSE to make the button look like a normal button. This can be used to create linked strip of buttons that work like a #GtkStackSwitcher. This function only affects instances of classes like #GtkCheckButton and #GtkRadioButton that derive from #GtkToggleButton, not instances of #GtkToggleButton itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </instance-parameter> <parameter name="draw_indicator" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, draw the button as a separate indicator and label; if %FALSE, draw the button like a normal button</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="toggled" c:identifier="gtk_toggle_button_toggled"> <doc xml:space="preserve">Emits the #GtkToggleButton::toggled signal on the #GtkToggleButton. There is no good reason for an application ever to call this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton.</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </instance-parameter> </parameters> </method> <property name="active" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="draw-indicator" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="inconsistent" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="button" readable="0" private="1"> <type name="Button" c:type="GtkButton"/> </field> <field name="priv" readable="0" private="1"> <type name="ToggleButtonPrivate" c:type="GtkToggleButtonPrivate*"/> </field> <glib:signal name="toggled" when="first"> <doc xml:space="preserve">Should be connected if you wish to perform an action whenever the #GtkToggleButton's state is changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <class name="ToggleButtonAccessible" c:symbol-prefix="toggle_button_accessible" c:type="GtkToggleButtonAccessible" parent="ButtonAccessible" glib:type-name="GtkToggleButtonAccessible" glib:get-type="gtk_toggle_button_accessible_get_type" glib:type-struct="ToggleButtonAccessibleClass"> <implements name="Atk.Action"/> <implements name="Atk.Component"/> <implements name="Atk.Image"/> <field name="parent"> <type name="ButtonAccessible" c:type="GtkButtonAccessible"/> </field> <field name="priv"> <type name="ToggleButtonAccessiblePrivate" c:type="GtkToggleButtonAccessiblePrivate*"/> </field> </class> <record name="ToggleButtonAccessibleClass" c:type="GtkToggleButtonAccessibleClass" glib:is-gtype-struct-for="ToggleButtonAccessible"> <field name="parent_class"> <type name="ButtonAccessibleClass" c:type="GtkButtonAccessibleClass"/> </field> </record> <record name="ToggleButtonAccessiblePrivate" c:type="GtkToggleButtonAccessiblePrivate" disguised="1"> </record> <record name="ToggleButtonClass" c:type="GtkToggleButtonClass" glib:is-gtype-struct-for="ToggleButton"> <field name="parent_class"> <type name="ButtonClass" c:type="GtkButtonClass"/> </field> <field name="toggled"> <callback name="toggled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="toggle_button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleButton.</doc> <type name="ToggleButton" c:type="GtkToggleButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ToggleButtonPrivate" c:type="GtkToggleButtonPrivate" disguised="1"> </record> <class name="ToggleToolButton" c:symbol-prefix="toggle_tool_button" c:type="GtkToggleToolButton" parent="ToolButton" glib:type-name="GtkToggleToolButton" glib:get-type="gtk_toggle_tool_button_get_type" glib:type-struct="ToggleToolButtonClass"> <doc xml:space="preserve">A #GtkToggleToolButton is a #GtkToolItem that contains a toggle button. Use gtk_toggle_tool_button_new() to create a new GtkToggleToolButton. # CSS nodes GtkToggleToolButton has a single CSS node with name togglebutton.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_toggle_tool_button_new" version="2.4"> <doc xml:space="preserve">Returns a new #GtkToggleToolButton</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created #GtkToggleToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> </constructor> <constructor name="new_from_stock" c:identifier="gtk_toggle_tool_button_new_from_stock" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkToggleToolButton containing the image and text from a stock item. Some stock ids have preprocessor macros like #GTK_STOCK_OK and #GTK_STOCK_APPLY. It is an error if @stock_id is not a name of a stock item.</doc> <doc-deprecated xml:space="preserve">Use gtk_toggle_tool_button_new() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkToggleToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the name of the stock item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="toggled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <type name="ToggleToolButton" c:type="GtkToggleToolButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_active" c:identifier="gtk_toggle_tool_button_get_active" version="2.4"> <doc xml:space="preserve">Queries a #GtkToggleToolButton and returns its current state. Returns %TRUE if the toggle button is pressed in and %FALSE if it is raised.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the toggle tool button is pressed in, %FALSE if not</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleToolButton</doc> <type name="ToggleToolButton" c:type="GtkToggleToolButton*"/> </instance-parameter> </parameters> </method> <method name="set_active" c:identifier="gtk_toggle_tool_button_set_active" version="2.4"> <doc xml:space="preserve">Sets the status of the toggle tool button. Set to %TRUE if you want the GtkToggleButton to be âpressed inâ, and %FALSE to raise it. This action causes the toggled signal to be emitted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToggleToolButton</doc> <type name="ToggleToolButton" c:type="GtkToggleToolButton*"/> </instance-parameter> <parameter name="is_active" transfer-ownership="none"> <doc xml:space="preserve">whether @button should be active</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="active" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">If the toggle tool button should be pressed in.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="ToolButton" c:type="GtkToolButton"/> </field> <field name="priv" readable="0" private="1"> <type name="ToggleToolButtonPrivate" c:type="GtkToggleToolButtonPrivate*"/> </field> <glib:signal name="toggled" when="first"> <doc xml:space="preserve">Emitted whenever the toggle tool button changes state.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="ToggleToolButtonClass" c:type="GtkToggleToolButtonClass" glib:is-gtype-struct-for="ToggleToolButton"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ToolButtonClass" c:type="GtkToolButtonClass"/> </field> <field name="toggled"> <callback name="toggled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="button" transfer-ownership="none"> <type name="ToggleToolButton" c:type="GtkToggleToolButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ToggleToolButtonPrivate" c:type="GtkToggleToolButtonPrivate" disguised="1"> </record> <class name="ToolButton" c:symbol-prefix="tool_button" c:type="GtkToolButton" parent="ToolItem" glib:type-name="GtkToolButton" glib:get-type="gtk_tool_button_get_type" glib:type-struct="ToolButtonClass"> <doc xml:space="preserve">#GtkToolButtons are #GtkToolItems containing buttons. Use gtk_tool_button_new() to create a new #GtkToolButton. The label of a #GtkToolButton is determined by the properties #GtkToolButton:label-widget, #GtkToolButton:label, and #GtkToolButton:stock-id. If #GtkToolButton:label-widget is non-%NULL, then that widget is used as the label. Otherwise, if #GtkToolButton:label is non-%NULL, that string is used as the label. Otherwise, if #GtkToolButton:stock-id is non-%NULL, the label is determined by the stock item. Otherwise, the button does not have a label. The icon of a #GtkToolButton is determined by the properties #GtkToolButton:icon-widget and #GtkToolButton:stock-id. If #GtkToolButton:icon-widget is non-%NULL, then that widget is used as the icon. Otherwise, if #GtkToolButton:stock-id is non-%NULL, the icon is determined by the stock item. Otherwise, the button does not have a icon. # CSS nodes GtkToolButton has a single CSS node with name toolbutton.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_tool_button_new" version="2.4"> <doc xml:space="preserve">Creates a new #GtkToolButton using @icon_widget as contents and @label as label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="icon_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a widget that will be used as the button contents, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string that will be used as label, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <constructor name="new_from_stock" c:identifier="gtk_tool_button_new_from_stock" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new #GtkToolButton containing the image and text from a stock item. Some stock ids have preprocessor macros like #GTK_STOCK_OK and #GTK_STOCK_APPLY. It is an error if @stock_id is not a name of a stock item.</doc> <doc-deprecated xml:space="preserve">Use gtk_tool_button_new() together with gtk_image_new_from_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A new #GtkToolButton</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the name of the stock item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <virtual-method name="clicked"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_icon_name" c:identifier="gtk_tool_button_get_icon_name" version="2.8"> <doc xml:space="preserve">Returns the name of the themed icon for the tool button, see gtk_tool_button_set_icon_name().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the icon name or %NULL if the tool button has no themed icon</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> </parameters> </method> <method name="get_icon_widget" c:identifier="gtk_tool_button_get_icon_widget" version="2.4"> <doc xml:space="preserve">Return the widget used as icon widget on @button. See gtk_tool_button_set_icon_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The widget used as icon on @button, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> </parameters> </method> <method name="get_label" c:identifier="gtk_tool_button_get_label" version="2.4"> <doc xml:space="preserve">Returns the label used by the tool button, or %NULL if the tool button doesnât have a label. or uses a the label from a stock item. The returned string is owned by GTK+, and must not be modified or freed.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The label, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> </parameters> </method> <method name="get_label_widget" c:identifier="gtk_tool_button_get_label_widget" version="2.4"> <doc xml:space="preserve">Returns the widget used as label on @button. See gtk_tool_button_set_label_widget().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The widget used as label on @button, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> </parameters> </method> <method name="get_stock_id" c:identifier="gtk_tool_button_get_stock_id" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the name of the stock item. See gtk_tool_button_set_stock_id(). The returned string is owned by GTK+ and must not be freed or modifed.</doc> <doc-deprecated xml:space="preserve">Use gtk_tool_button_get_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name of the stock item for @button.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> </parameters> </method> <method name="get_use_underline" c:identifier="gtk_tool_button_get_use_underline" version="2.4"> <doc xml:space="preserve">Returns whether underscores in the label property are used as mnemonics on menu items on the overflow menu. See gtk_tool_button_set_use_underline().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if underscores in the label property are used as mnemonics on menu items on the overflow menu.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> </parameters> </method> <method name="set_icon_name" c:identifier="gtk_tool_button_set_icon_name" version="2.8"> <doc xml:space="preserve">Sets the icon for the tool button from a named themed icon. See the docs for #GtkIconTheme for more details. The #GtkToolButton:icon-name property only has an effect if not overridden by non-%NULL #GtkToolButton:label-widget, #GtkToolButton:icon-widget and #GtkToolButton:stock-id properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of the themed icon</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_icon_widget" c:identifier="gtk_tool_button_set_icon_widget" version="2.4"> <doc xml:space="preserve">Sets @icon as the widget used as icon on @button. If @icon_widget is %NULL the icon is determined by the #GtkToolButton:stock-id property. If the #GtkToolButton:stock-id property is also %NULL, @button will not have an icon.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> <parameter name="icon_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget used as icon, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_tool_button_set_label" version="2.4"> <doc xml:space="preserve">Sets @label as the label used for the tool button. The #GtkToolButton:label property only has an effect if not overridden by a non-%NULL #GtkToolButton:label-widget property. If both the #GtkToolButton:label-widget and #GtkToolButton:label properties are %NULL, the label is determined by the #GtkToolButton:stock-id property. If the #GtkToolButton:stock-id property is also %NULL, @button will not have a label.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> <parameter name="label" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string that will be used as label, or %NULL.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_label_widget" c:identifier="gtk_tool_button_set_label_widget" version="2.4"> <doc xml:space="preserve">Sets @label_widget as the widget that will be used as the label for @button. If @label_widget is %NULL the #GtkToolButton:label property is used as label. If #GtkToolButton:label is also %NULL, the label in the stock item determined by the #GtkToolButton:stock-id property is used as label. If #GtkToolButton:stock-id is also %NULL, @button does not have a label.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> <parameter name="label_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget used as label, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_stock_id" c:identifier="gtk_tool_button_set_stock_id" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the name of the stock item. See gtk_tool_button_new_from_stock(). The stock_id property only has an effect if not overridden by non-%NULL #GtkToolButton:label-widget and #GtkToolButton:icon-widget properties.</doc> <doc-deprecated xml:space="preserve">Use gtk_tool_button_set_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a name of a stock item, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_use_underline" c:identifier="gtk_tool_button_set_use_underline" version="2.4"> <doc xml:space="preserve">If set, an underline in the label property indicates that the next character should be used for the mnemonic accelerator key in the overflow menu. For example, if the label property is â_Openâ and @use_underline is %TRUE, the label on the tool button will be âOpenâ and the item on the overflow menu will have an underlined âOâ. Labels shown on tool buttons never have mnemonics on them; this property only affects the menu item on the overflow menu.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolButton</doc> <type name="ToolButton" c:type="GtkToolButton*"/> </instance-parameter> <parameter name="use_underline" transfer-ownership="none"> <doc xml:space="preserve">whether the button label has the form â_Openâ</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="icon-name" version="2.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The name of the themed icon displayed on the item. This property only has an effect if not overridden by #GtkToolButton:label-widget, #GtkToolButton:icon-widget or #GtkToolButton:stock-id properties.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="icon-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="label" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="label-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="stock-id" deprecated="1" deprecated-version="3.10" writable="1" transfer-ownership="none"> <doc-deprecated xml:space="preserve">Use #GtkToolButton:icon-name instead.</doc-deprecated> <type name="utf8" c:type="gchar*"/> </property> <property name="use-underline" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="ToolItem" c:type="GtkToolItem"/> </field> <field name="priv" readable="0" private="1"> <type name="ToolButtonPrivate" c:type="GtkToolButtonPrivate*"/> </field> <glib:signal name="clicked" when="first" action="1"> <doc xml:space="preserve">This signal is emitted when the tool button is clicked with the mouse or activated with the keyboard.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="ToolButtonClass" c:type="GtkToolButtonClass" glib:is-gtype-struct-for="ToolButton"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ToolItemClass" c:type="GtkToolItemClass"/> </field> <field name="button_type"> <type name="GType" c:type="GType"/> </field> <field name="clicked"> <callback name="clicked"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tool_item" transfer-ownership="none"> <type name="ToolButton" c:type="GtkToolButton*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ToolButtonPrivate" c:type="GtkToolButtonPrivate" disguised="1"> </record> <class name="ToolItem" c:symbol-prefix="tool_item" c:type="GtkToolItem" parent="Bin" glib:type-name="GtkToolItem" glib:get-type="gtk_tool_item_get_type" glib:type-struct="ToolItemClass"> <doc xml:space="preserve">#GtkToolItems are widgets that can appear on a toolbar. To create a toolbar item that contain something else than a button, use gtk_tool_item_new(). Use gtk_container_add() to add a child widget to the tool item. For toolbar items that contain buttons, see the #GtkToolButton, #GtkToggleToolButton and #GtkRadioToolButton classes. See the #GtkToolbar class for a description of the toolbar widget, and #GtkToolShell for a description of the tool shell interface.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Activatable"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_tool_item_new" version="2.4"> <doc xml:space="preserve">Creates a new #GtkToolItem</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> </constructor> <virtual-method name="create_menu_proxy"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="toolbar_reconfigured" invoker="toolbar_reconfigured" version="2.14"> <doc xml:space="preserve">Emits the signal #GtkToolItem::toolbar_reconfigured on @tool_item. #GtkToolbar and other #GtkToolShell implementations use this function to notify children, when some aspect of their configuration changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_ellipsize_mode" c:identifier="gtk_tool_item_get_ellipsize_mode" version="2.20"> <doc xml:space="preserve">Returns the ellipsize mode used for @tool_item. Custom subclasses of #GtkToolItem should call this function to find out how text should be ellipsized.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #PangoEllipsizeMode indicating how text in @tool_item should be ellipsized.</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_expand" c:identifier="gtk_tool_item_get_expand" version="2.4"> <doc xml:space="preserve">Returns whether @tool_item is allocated extra space. See gtk_tool_item_set_expand().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tool_item is allocated extra space.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_homogeneous" c:identifier="gtk_tool_item_get_homogeneous" version="2.4"> <doc xml:space="preserve">Returns whether @tool_item is the same size as other homogeneous items. See gtk_tool_item_set_homogeneous().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the item is the same size as other homogeneous items.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_icon_size" c:identifier="gtk_tool_item_get_icon_size" version="2.4"> <doc xml:space="preserve">Returns the icon size used for @tool_item. Custom subclasses of #GtkToolItem should call this function to find out what size icons they should use.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSize indicating the icon size used for @tool_item</doc> <type name="gint" c:type="GtkIconSize"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_is_important" c:identifier="gtk_tool_item_get_is_important" version="2.4"> <doc xml:space="preserve">Returns whether @tool_item is considered important. See gtk_tool_item_set_is_important()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tool_item is considered important.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_orientation" c:identifier="gtk_tool_item_get_orientation" version="2.4"> <doc xml:space="preserve">Returns the orientation used for @tool_item. Custom subclasses of #GtkToolItem should call this function to find out what size icons they should use.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkOrientation indicating the orientation used for @tool_item</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_proxy_menu_item" c:identifier="gtk_tool_item_get_proxy_menu_item" version="2.4"> <doc xml:space="preserve">If @menu_item_id matches the string passed to gtk_tool_item_set_proxy_menu_item() return the corresponding #GtkMenuItem. Custom subclasses of #GtkToolItem should use this function to update their menu item when the #GtkToolItem changes. That the @menu_item_ids must match ensures that a #GtkToolItem will not inadvertently change a menu item that they did not create.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The #GtkMenuItem passed to gtk_tool_item_set_proxy_menu_item(), if the @menu_item_ids match.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="menu_item_id" transfer-ownership="none"> <doc xml:space="preserve">a string used to identify the menu item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_relief_style" c:identifier="gtk_tool_item_get_relief_style" version="2.4"> <doc xml:space="preserve">Returns the relief style of @tool_item. See gtk_button_set_relief(). Custom subclasses of #GtkToolItem should call this function in the handler of the #GtkToolItem::toolbar_reconfigured signal to find out the relief style of buttons.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkReliefStyle indicating the relief style used for @tool_item.</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_text_alignment" c:identifier="gtk_tool_item_get_text_alignment" version="2.20"> <doc xml:space="preserve">Returns the text alignment used for @tool_item. Custom subclasses of #GtkToolItem should call this function to find out how text should be aligned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #gfloat indicating the horizontal text alignment used for @tool_item</doc> <type name="gfloat" c:type="gfloat"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem:</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_text_orientation" c:identifier="gtk_tool_item_get_text_orientation" version="2.20"> <doc xml:space="preserve">Returns the text orientation used for @tool_item. Custom subclasses of #GtkToolItem should call this function to find out how text should be orientated.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkOrientation indicating the text orientation used for @tool_item</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_text_size_group" c:identifier="gtk_tool_item_get_text_size_group" version="2.20"> <doc xml:space="preserve">Returns the size group used for labels in @tool_item. Custom subclasses of #GtkToolItem should call this function and use the size group for labels.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkSizeGroup</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_toolbar_style" c:identifier="gtk_tool_item_get_toolbar_style" version="2.4"> <doc xml:space="preserve">Returns the toolbar style used for @tool_item. Custom subclasses of #GtkToolItem should call this function in the handler of the GtkToolItem::toolbar_reconfigured signal to find out in what style the toolbar is displayed and change themselves accordingly Possibilities are: - %GTK_TOOLBAR_BOTH, meaning the tool item should show both an icon and a label, stacked vertically - %GTK_TOOLBAR_ICONS, meaning the toolbar shows only icons - %GTK_TOOLBAR_TEXT, meaning the tool item should only show text - %GTK_TOOLBAR_BOTH_HORIZ, meaning the tool item should show both an icon and a label, arranged horizontally</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkToolbarStyle indicating the toolbar style used for @tool_item.</doc> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_use_drag_window" c:identifier="gtk_tool_item_get_use_drag_window" version="2.4"> <doc xml:space="preserve">Returns whether @tool_item has a drag window. See gtk_tool_item_set_use_drag_window().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tool_item uses a drag window.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_visible_horizontal" c:identifier="gtk_tool_item_get_visible_horizontal" version="2.4"> <doc xml:space="preserve">Returns whether the @tool_item is visible on toolbars that are docked horizontally.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tool_item is visible on toolbars that are docked horizontally.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="get_visible_vertical" c:identifier="gtk_tool_item_get_visible_vertical" version="2.4"> <doc xml:space="preserve">Returns whether @tool_item is visible when the toolbar is docked vertically. See gtk_tool_item_set_visible_vertical().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether @tool_item is visible when the toolbar is docked vertically</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="rebuild_menu" c:identifier="gtk_tool_item_rebuild_menu" version="2.6"> <doc xml:space="preserve">Calling this function signals to the toolbar that the overflow menu item for @tool_item has changed. If the overflow menu is visible when this function it called, the menu will be rebuilt. The function must be called when the tool item changes what it will do in response to the #GtkToolItem::create-menu-proxy signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="retrieve_proxy_menu_item" c:identifier="gtk_tool_item_retrieve_proxy_menu_item" version="2.4"> <doc xml:space="preserve">Returns the #GtkMenuItem that was last set by gtk_tool_item_set_proxy_menu_item(), ie. the #GtkMenuItem that is going to appear in the overflow menu.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkMenuItem that is going to appear in the overflow menu for @tool_item.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <method name="set_expand" c:identifier="gtk_tool_item_set_expand" version="2.4"> <doc xml:space="preserve">Sets whether @tool_item is allocated extra space when there is more room on the toolbar then needed for the items. The effect is that the item gets bigger when the toolbar gets bigger and smaller when the toolbar gets smaller.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">Whether @tool_item is allocated extra space</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_homogeneous" c:identifier="gtk_tool_item_set_homogeneous" version="2.4"> <doc xml:space="preserve">Sets whether @tool_item is to be allocated the same size as other homogeneous items. The effect is that all homogeneous items will have the same width as the widest of the items.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">whether @tool_item is the same size as other homogeneous items</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_is_important" c:identifier="gtk_tool_item_set_is_important" version="2.4"> <doc xml:space="preserve">Sets whether @tool_item should be considered important. The #GtkToolButton class uses this property to determine whether to show or hide its label when the toolbar style is %GTK_TOOLBAR_BOTH_HORIZ. The result is that only tool buttons with the âis_importantâ property set have labels, an effect known as âpriority textâ</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="is_important" transfer-ownership="none"> <doc xml:space="preserve">whether the tool item should be considered important</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_proxy_menu_item" c:identifier="gtk_tool_item_set_proxy_menu_item" version="2.4"> <doc xml:space="preserve">Sets the #GtkMenuItem used in the toolbar overflow menu. The @menu_item_id is used to identify the caller of this function and should also be used with gtk_tool_item_get_proxy_menu_item(). See also #GtkToolItem::create-menu-proxy.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="menu_item_id" transfer-ownership="none"> <doc xml:space="preserve">a string used to identify @menu_item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="menu_item" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkMenuItem to use in the overflow menu, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_tooltip_markup" c:identifier="gtk_tool_item_set_tooltip_markup" version="2.12"> <doc xml:space="preserve">Sets the markup text to be displayed as tooltip on the item. See gtk_widget_set_tooltip_markup().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="markup" transfer-ownership="none"> <doc xml:space="preserve">markup text to be used as tooltip for @tool_item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_tooltip_text" c:identifier="gtk_tool_item_set_tooltip_text" version="2.12"> <doc xml:space="preserve">Sets the text to be displayed as tooltip on the item. See gtk_widget_set_tooltip_text().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="text" transfer-ownership="none"> <doc xml:space="preserve">text to be used as tooltip for @tool_item</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_use_drag_window" c:identifier="gtk_tool_item_set_use_drag_window" version="2.4"> <doc xml:space="preserve">Sets whether @tool_item has a drag window. When %TRUE the toolitem can be used as a drag source through gtk_drag_source_set(). When @tool_item has a drag window it will intercept all events, even those that would otherwise be sent to a child of @tool_item.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="use_drag_window" transfer-ownership="none"> <doc xml:space="preserve">Whether @tool_item has a drag window.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visible_horizontal" c:identifier="gtk_tool_item_set_visible_horizontal" version="2.4"> <doc xml:space="preserve">Sets whether @tool_item is visible when the toolbar is docked horizontally.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="visible_horizontal" transfer-ownership="none"> <doc xml:space="preserve">Whether @tool_item is visible when in horizontal mode</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visible_vertical" c:identifier="gtk_tool_item_set_visible_vertical" version="2.4"> <doc xml:space="preserve">Sets whether @tool_item is visible when the toolbar is docked vertically. Some tool items, such as text entries, are too wide to be useful on a vertically docked toolbar. If @visible_vertical is %FALSE @tool_item will not appear on toolbars that are docked vertically.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> <parameter name="visible_vertical" transfer-ownership="none"> <doc xml:space="preserve">whether @tool_item is visible when the toolbar is in vertical mode</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="toolbar_reconfigured" c:identifier="gtk_tool_item_toolbar_reconfigured" version="2.14"> <doc xml:space="preserve">Emits the signal #GtkToolItem::toolbar_reconfigured on @tool_item. #GtkToolbar and other #GtkToolShell implementations use this function to notify children, when some aspect of their configuration changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </instance-parameter> </parameters> </method> <property name="is-important" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible-horizontal" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible-vertical" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="ToolItemPrivate" c:type="GtkToolItemPrivate*"/> </field> <glib:signal name="create-menu-proxy" when="last"> <doc xml:space="preserve">This signal is emitted when the toolbar needs information from @tool_item about whether the item should appear in the toolbar overflow menu. In response the tool item should either - call gtk_tool_item_set_proxy_menu_item() with a %NULL pointer and return %TRUE to indicate that the item should not appear in the overflow menu - call gtk_tool_item_set_proxy_menu_item() with a new menu item and return %TRUE, or - return %FALSE to indicate that the signal was not handled by the item. This means that the item will not appear in the overflow menu unless a later handler installs a menu item. The toolbar may cache the result of this signal. When the tool item changes how it will respond to this signal it must call gtk_tool_item_rebuild_menu() to invalidate the cache and ensure that the toolbar rebuilds its overflow menu.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal was handled, %FALSE if not</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="toolbar-reconfigured" when="last"> <doc xml:space="preserve">This signal is emitted when some property of the toolbar that the item is a child of changes. For custom subclasses of #GtkToolItem, the default handler of this signal use the functions - gtk_tool_shell_get_orientation() - gtk_tool_shell_get_style() - gtk_tool_shell_get_icon_size() - gtk_tool_shell_get_relief_style() to find out what the toolbar should look like and change themselves accordingly.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="ToolItemClass" c:type="GtkToolItemClass" glib:is-gtype-struct-for="ToolItem"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="create_menu_proxy"> <callback name="create_menu_proxy"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tool_item" transfer-ownership="none"> <type name="ToolItem" c:type="GtkToolItem*"/> </parameter> </parameters> </callback> </field> <field name="toolbar_reconfigured"> <callback name="toolbar_reconfigured"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tool_item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="ToolItemGroup" c:symbol-prefix="tool_item_group" c:type="GtkToolItemGroup" parent="Container" glib:type-name="GtkToolItemGroup" glib:get-type="gtk_tool_item_group_get_type" glib:type-struct="ToolItemGroupClass"> <doc xml:space="preserve">A #GtkToolItemGroup is used together with #GtkToolPalette to add #GtkToolItems to a palette like container with different categories and drag and drop support. # CSS nodes GtkToolItemGroup has a single CSS node named toolitemgroup.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="ToolShell"/> <constructor name="new" c:identifier="gtk_tool_item_group_new" version="2.20"> <doc xml:space="preserve">Creates a new tool item group with label @label.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkToolItemGroup.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the label of the new group</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="get_collapsed" c:identifier="gtk_tool_item_group_get_collapsed" version="2.20"> <doc xml:space="preserve">Gets whether @group is collapsed or expanded.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @group is collapsed, %FALSE if it is expanded</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> </parameters> </method> <method name="get_drop_item" c:identifier="gtk_tool_item_group_get_drop_item" version="2.20"> <doc xml:space="preserve">Gets the tool item at position (x, y).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkToolItem at position (x, y)</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_ellipsize" c:identifier="gtk_tool_item_group_get_ellipsize" version="2.20"> <doc xml:space="preserve">Gets the ellipsization mode of @group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #PangoEllipsizeMode of @group</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> </parameters> </method> <method name="get_header_relief" c:identifier="gtk_tool_item_group_get_header_relief" version="2.20"> <doc xml:space="preserve">Gets the relief mode of the header button of @group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkReliefStyle</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> </parameters> </method> <method name="get_item_position" c:identifier="gtk_tool_item_group_get_item_position" version="2.20"> <doc xml:space="preserve">Gets the position of @item in @group as index.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index of @item in @group or -1 if @item is no child of @group</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </parameter> </parameters> </method> <method name="get_label" c:identifier="gtk_tool_item_group_get_label" version="2.20"> <doc xml:space="preserve">Gets the label of @group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the label of @group. The label is an internal string of @group and must not be modified. Note that %NULL is returned if a custom label has been set with gtk_tool_item_group_set_label_widget()</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> </parameters> </method> <method name="get_label_widget" c:identifier="gtk_tool_item_group_get_label_widget" version="2.20"> <doc xml:space="preserve">Gets the label widget of @group. See gtk_tool_item_group_set_label_widget().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the label widget of @group</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> </parameters> </method> <method name="get_n_items" c:identifier="gtk_tool_item_group_get_n_items" version="2.20"> <doc xml:space="preserve">Gets the number of tool items in @group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of tool items in @group</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> </parameters> </method> <method name="get_nth_item" c:identifier="gtk_tool_item_group_get_nth_item" version="2.20"> <doc xml:space="preserve">Gets the tool item at @index in group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkToolItem at index</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="index" transfer-ownership="none"> <doc xml:space="preserve">the index</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="insert" c:identifier="gtk_tool_item_group_insert" version="2.20"> <doc xml:space="preserve">Inserts @item at @position in the list of children of @group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">the #GtkToolItem to insert into @group</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the position of @item in @group, starting with 0. The position -1 means end of list.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_collapsed" c:identifier="gtk_tool_item_group_set_collapsed" version="2.20"> <doc xml:space="preserve">Sets whether the @group should be collapsed or expanded.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="collapsed" transfer-ownership="none"> <doc xml:space="preserve">whether the @group should be collapsed or expanded</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_ellipsize" c:identifier="gtk_tool_item_group_set_ellipsize" version="2.20"> <doc xml:space="preserve">Sets the ellipsization mode which should be used by labels in @group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="ellipsize" transfer-ownership="none"> <doc xml:space="preserve">the #PangoEllipsizeMode labels in @group should use</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </parameter> </parameters> </method> <method name="set_header_relief" c:identifier="gtk_tool_item_group_set_header_relief" version="2.20"> <doc xml:space="preserve">Set the button relief of the group header. See gtk_button_set_relief() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">the #GtkReliefStyle</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </parameter> </parameters> </method> <method name="set_item_position" c:identifier="gtk_tool_item_group_set_item_position" version="2.20"> <doc xml:space="preserve">Sets the position of @item in the list of children of @group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">the #GtkToolItem to move to a new position, should be a child of @group.</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">the new position of @item in @group, starting with 0. The position -1 means end of list.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_label" c:identifier="gtk_tool_item_group_set_label" version="2.20"> <doc xml:space="preserve">Sets the label of the tool item group. The label is displayed in the header of the group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">the new human-readable label of of the group</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_label_widget" c:identifier="gtk_tool_item_group_set_label_widget" version="2.20"> <doc xml:space="preserve">Sets the label of the tool item group. The label widget is displayed in the header of the group, in place of the usual label.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </instance-parameter> <parameter name="label_widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to be displayed in place of the usual label</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <property name="collapsed" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="ellipsize" writable="1" transfer-ownership="none"> <type name="Pango.EllipsizeMode"/> </property> <property name="header-relief" writable="1" transfer-ownership="none"> <type name="ReliefStyle"/> </property> <property name="label" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="label-widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <field name="parent_instance"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv"> <type name="ToolItemGroupPrivate" c:type="GtkToolItemGroupPrivate*"/> </field> </class> <record name="ToolItemGroupClass" c:type="GtkToolItemGroupClass" glib:is-gtype-struct-for="ToolItemGroup"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ToolItemGroupPrivate" c:type="GtkToolItemGroupPrivate" disguised="1"> </record> <record name="ToolItemPrivate" c:type="GtkToolItemPrivate" disguised="1"> </record> <class name="ToolPalette" c:symbol-prefix="tool_palette" c:type="GtkToolPalette" parent="Container" glib:type-name="GtkToolPalette" glib:get-type="gtk_tool_palette_get_type" glib:type-struct="ToolPaletteClass"> <doc xml:space="preserve">A #GtkToolPalette allows you to add #GtkToolItems to a palette-like container with different categories and drag and drop support. A #GtkToolPalette is created with a call to gtk_tool_palette_new(). #GtkToolItems cannot be added directly to a #GtkToolPalette - instead they are added to a #GtkToolItemGroup which can than be added to a #GtkToolPalette. To add a #GtkToolItemGroup to a #GtkToolPalette, use gtk_container_add(). |[<!-- language="C" --> GtkWidget *palette, *group; GtkToolItem *item; palette = gtk_tool_palette_new (); group = gtk_tool_item_group_new (_("Test Category")); gtk_container_add (GTK_CONTAINER (palette), group); item = gtk_tool_button_new (NULL, _("_Open")); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "document-open"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); ]| The easiest way to use drag and drop with #GtkToolPalette is to call gtk_tool_palette_add_drag_dest() with the desired drag source @palette and the desired drag target @widget. Then gtk_tool_palette_get_drag_item() can be used to get the dragged item in the #GtkWidget::drag-data-received signal handler of the drag target. |[<!-- language="C" --> static void passive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { GtkWidget *palette; GtkWidget *item; // Get the dragged item palette = gtk_widget_get_ancestor (gtk_drag_get_source_widget (context), GTK_TYPE_TOOL_PALETTE); if (palette != NULL) item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection); // Do something with item } GtkWidget *target, palette; palette = gtk_tool_palette_new (); target = gtk_drawing_area_new (); g_signal_connect (G_OBJECT (target), "drag-data-received", G_CALLBACK (passive_canvas_drag_data_received), NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), target, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY); ]| # CSS nodes GtkToolPalette has a single CSS node named toolpalette.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <implements name="Scrollable"/> <constructor name="new" c:identifier="gtk_tool_palette_new" version="2.20"> <doc xml:space="preserve">Creates a new tool palette.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkToolPalette</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <function name="get_drag_target_group" c:identifier="gtk_tool_palette_get_drag_target_group" version="2.20"> <doc xml:space="preserve">Get the target entry for a dragged #GtkToolItemGroup.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkTargetEntry for a dragged group</doc> <type name="TargetEntry" c:type="const GtkTargetEntry*"/> </return-value> </function> <function name="get_drag_target_item" c:identifier="gtk_tool_palette_get_drag_target_item" version="2.20"> <doc xml:space="preserve">Gets the target entry for a dragged #GtkToolItem.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkTargetEntry for a dragged item.</doc> <type name="TargetEntry" c:type="const GtkTargetEntry*"/> </return-value> </function> <method name="add_drag_dest" c:identifier="gtk_tool_palette_add_drag_dest" version="2.20"> <doc xml:space="preserve">Sets @palette as drag source (see gtk_tool_palette_set_drag_source()) and sets @widget as a drag destination for drags from @palette. See gtk_drag_dest_set().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget which should be a drag destination for @palette</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">the flags that specify what actions GTK+ should take for drops on that widget</doc> <type name="DestDefaults" c:type="GtkDestDefaults"/> </parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">the #GtkToolPaletteDragTargets which the widget should support</doc> <type name="ToolPaletteDragTargets" c:type="GtkToolPaletteDragTargets"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">the #GdkDragActions which the widget should suppport</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> </parameters> </method> <method name="get_drag_item" c:identifier="gtk_tool_palette_get_drag_item" version="2.20"> <doc xml:space="preserve">Get the dragged item from the selection. This could be a #GtkToolItem or a #GtkToolItemGroup.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the dragged item in selection</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData</doc> <type name="SelectionData" c:type="const GtkSelectionData*"/> </parameter> </parameters> </method> <method name="get_drop_group" c:identifier="gtk_tool_palette_get_drop_group" version="2.20"> <doc xml:space="preserve">Gets the group at position (x, y).</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #GtkToolItemGroup at position or %NULL if there is no such group</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_drop_item" c:identifier="gtk_tool_palette_get_drop_item" version="2.20"> <doc xml:space="preserve">Gets the item at position (x, y). See gtk_tool_palette_get_drop_group().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #GtkToolItem at position or %NULL if there is no such item</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_exclusive" c:identifier="gtk_tool_palette_get_exclusive" version="2.20"> <doc xml:space="preserve">Gets whether @group is exclusive or not. See gtk_tool_palette_set_exclusive().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @group is exclusive</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup which is a child of palette</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </parameter> </parameters> </method> <method name="get_expand" c:identifier="gtk_tool_palette_get_expand" version="2.20"> <doc xml:space="preserve">Gets whether group should be given extra space. See gtk_tool_palette_set_expand().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if group should be given extra space, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup which is a child of palette</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </parameter> </parameters> </method> <method name="get_group_position" c:identifier="gtk_tool_palette_get_group_position" version="2.20"> <doc xml:space="preserve">Gets the position of @group in @palette as index. See gtk_tool_palette_set_group_position().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index of group or -1 if @group is not a child of @palette</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </parameter> </parameters> </method> <method name="get_hadjustment" c:identifier="gtk_tool_palette_get_hadjustment" version="2.20" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Gets the horizontal adjustment of the tool palette.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_hadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the horizontal adjustment of @palette</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> </parameters> </method> <method name="get_icon_size" c:identifier="gtk_tool_palette_get_icon_size" version="2.20"> <doc xml:space="preserve">Gets the size of icons in the tool palette. See gtk_tool_palette_set_icon_size().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkIconSize of icons in the tool palette</doc> <type name="gint" c:type="GtkIconSize"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> </parameters> </method> <method name="get_style" c:identifier="gtk_tool_palette_get_style" version="2.20"> <doc xml:space="preserve">Gets the style (icons, text or both) of items in the tool palette.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkToolbarStyle of items in the tool palette.</doc> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> </parameters> </method> <method name="get_vadjustment" c:identifier="gtk_tool_palette_get_vadjustment" version="2.20" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Gets the vertical adjustment of the tool palette.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_vadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical adjustment of @palette</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> </parameters> </method> <method name="set_drag_source" c:identifier="gtk_tool_palette_set_drag_source" version="2.20"> <doc xml:space="preserve">Sets the tool palette as a drag source. Enables all groups and items in the tool palette as drag sources on button 1 and button 3 press with copy and move actions. See gtk_drag_source_set().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">the #GtkToolPaletteDragTargets which the widget should support</doc> <type name="ToolPaletteDragTargets" c:type="GtkToolPaletteDragTargets"/> </parameter> </parameters> </method> <method name="set_exclusive" c:identifier="gtk_tool_palette_set_exclusive" version="2.20"> <doc xml:space="preserve">Sets whether the group should be exclusive or not. If an exclusive group is expanded all other groups are collapsed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup which is a child of palette</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </parameter> <parameter name="exclusive" transfer-ownership="none"> <doc xml:space="preserve">whether the group should be exclusive or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_expand" c:identifier="gtk_tool_palette_set_expand" version="2.20"> <doc xml:space="preserve">Sets whether the group should be given extra space.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup which is a child of palette</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">whether the group should be given extra space</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_group_position" c:identifier="gtk_tool_palette_set_group_position" version="2.20"> <doc xml:space="preserve">Sets the position of the group as an index of the tool palette. If position is 0 the group will become the first child, if position is -1 it will become the last child.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItemGroup which is a child of palette</doc> <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">a new index for group</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_icon_size" c:identifier="gtk_tool_palette_set_icon_size" version="2.20"> <doc xml:space="preserve">Sets the size of icons in the tool palette.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="icon_size" transfer-ownership="none"> <doc xml:space="preserve">the #GtkIconSize that icons in the tool palette shall have</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_style" c:identifier="gtk_tool_palette_set_style" version="2.20"> <doc xml:space="preserve">Sets the style (text, icons or both) of items in the tool palette.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">the #GtkToolbarStyle that items in the tool palette shall have</doc> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </parameter> </parameters> </method> <method name="unset_icon_size" c:identifier="gtk_tool_palette_unset_icon_size" version="2.20"> <doc xml:space="preserve">Unsets the tool palette icon size set with gtk_tool_palette_set_icon_size(), so that user preferences will be used to determine the icon size.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> </parameters> </method> <method name="unset_style" c:identifier="gtk_tool_palette_unset_style" version="2.20"> <doc xml:space="preserve">Unsets a toolbar style set with gtk_tool_palette_set_style(), so that user preferences will be used to determine the toolbar style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="palette" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolPalette</doc> <type name="ToolPalette" c:type="GtkToolPalette*"/> </instance-parameter> </parameters> </method> <property name="icon-size" version="2.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The size of the icons in a tool palette. When this property is set, it overrides the default setting. This should only be used for special-purpose tool palettes, normal application tool palettes should respect the user preferences for the size of icons.</doc> <type name="IconSize"/> </property> <property name="icon-size-set" version="2.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Is %TRUE if the #GtkToolPalette:icon-size property has been set.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="toolbar-style" version="2.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The style of items in the tool palette.</doc> <type name="ToolbarStyle"/> </property> <field name="parent_instance"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv"> <type name="ToolPalettePrivate" c:type="GtkToolPalettePrivate*"/> </field> </class> <record name="ToolPaletteClass" c:type="GtkToolPaletteClass" glib:is-gtype-struct-for="ToolPalette"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <bitfield name="ToolPaletteDragTargets" glib:type-name="GtkToolPaletteDragTargets" glib:get-type="gtk_tool_palette_drag_targets_get_type" c:type="GtkToolPaletteDragTargets"> <doc xml:space="preserve">Flags used to specify the supported drag targets.</doc> <member name="items" value="1" c:identifier="GTK_TOOL_PALETTE_DRAG_ITEMS" glib:nick="items"> <doc xml:space="preserve">Support drag of items.</doc> </member> <member name="groups" value="2" c:identifier="GTK_TOOL_PALETTE_DRAG_GROUPS" glib:nick="groups"> <doc xml:space="preserve">Support drag of groups.</doc> </member> </bitfield> <record name="ToolPalettePrivate" c:type="GtkToolPalettePrivate" disguised="1"> </record> <interface name="ToolShell" c:symbol-prefix="tool_shell" c:type="GtkToolShell" glib:type-name="GtkToolShell" glib:get-type="gtk_tool_shell_get_type" glib:type-struct="ToolShellIface"> <doc xml:space="preserve">The #GtkToolShell interface allows container widgets to provide additional information when embedding #GtkToolItem widgets.</doc> <prerequisite name="Widget"/> <virtual-method name="get_ellipsize_mode" invoker="get_ellipsize_mode" version="2.20"> <doc xml:space="preserve">Retrieves the current ellipsize mode for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_ellipsize_mode() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current ellipsize mode of @shell</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_icon_size"> <return-value transfer-ownership="none"> <type name="IconSize" c:type="GtkIconSize"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_orientation" invoker="get_orientation" version="2.14"> <doc xml:space="preserve">Retrieves the current orientation for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_orientation() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current orientation of @shell</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_relief_style" invoker="get_relief_style" version="2.14"> <doc xml:space="preserve">Returns the relief style of buttons on @shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_relief_style() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The relief style of buttons on @shell.</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_style" invoker="get_style" version="2.14"> <doc xml:space="preserve">Retrieves whether the tool shell has text, icons, or both. Tool items must not call this function directly, but rely on gtk_tool_item_get_toolbar_style() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current style of @shell</doc> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_text_alignment" invoker="get_text_alignment" version="2.20"> <doc xml:space="preserve">Retrieves the current text alignment for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_alignment() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text alignment of @shell</doc> <type name="gfloat" c:type="gfloat"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_text_orientation" invoker="get_text_orientation" version="2.20"> <doc xml:space="preserve">Retrieves the current text orientation for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_orientation() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text orientation of @shell</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_text_size_group" invoker="get_text_size_group" version="2.20"> <doc xml:space="preserve">Retrieves the current text size group for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_size_group() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text size group of @shell</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="rebuild_menu" invoker="rebuild_menu" version="2.14"> <doc xml:space="preserve">Calling this function signals the tool shell that the overflow menu item for tool items have changed. If there is an overflow menu and if it is visible when this function it called, the menu will be rebuilt. Tool items must not call this function directly, but rely on gtk_tool_item_rebuild_menu() instead.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_ellipsize_mode" c:identifier="gtk_tool_shell_get_ellipsize_mode" version="2.20"> <doc xml:space="preserve">Retrieves the current ellipsize mode for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_ellipsize_mode() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current ellipsize mode of @shell</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> <method name="get_icon_size" c:identifier="gtk_tool_shell_get_icon_size" version="2.14"> <doc xml:space="preserve">Retrieves the icon size for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_icon_size() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current size (#GtkIconSize) for icons of @shell</doc> <type name="gint" c:type="GtkIconSize"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> <method name="get_orientation" c:identifier="gtk_tool_shell_get_orientation" version="2.14"> <doc xml:space="preserve">Retrieves the current orientation for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_orientation() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current orientation of @shell</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> <method name="get_relief_style" c:identifier="gtk_tool_shell_get_relief_style" version="2.14"> <doc xml:space="preserve">Returns the relief style of buttons on @shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_relief_style() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The relief style of buttons on @shell.</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> <method name="get_style" c:identifier="gtk_tool_shell_get_style" version="2.14"> <doc xml:space="preserve">Retrieves whether the tool shell has text, icons, or both. Tool items must not call this function directly, but rely on gtk_tool_item_get_toolbar_style() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current style of @shell</doc> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> <method name="get_text_alignment" c:identifier="gtk_tool_shell_get_text_alignment" version="2.20"> <doc xml:space="preserve">Retrieves the current text alignment for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_alignment() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text alignment of @shell</doc> <type name="gfloat" c:type="gfloat"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> <method name="get_text_orientation" c:identifier="gtk_tool_shell_get_text_orientation" version="2.20"> <doc xml:space="preserve">Retrieves the current text orientation for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_orientation() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text orientation of @shell</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> <method name="get_text_size_group" c:identifier="gtk_tool_shell_get_text_size_group" version="2.20"> <doc xml:space="preserve">Retrieves the current text size group for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_size_group() instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text size group of @shell</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> <method name="rebuild_menu" c:identifier="gtk_tool_shell_rebuild_menu" version="2.14"> <doc xml:space="preserve">Calling this function signals the tool shell that the overflow menu item for tool items have changed. If there is an overflow menu and if it is visible when this function it called, the menu will be rebuilt. Tool items must not call this function directly, but rely on gtk_tool_item_rebuild_menu() instead.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </instance-parameter> </parameters> </method> </interface> <record name="ToolShellIface" c:type="GtkToolShellIface" glib:is-gtype-struct-for="ToolShell"> <doc xml:space="preserve">Virtual function table for the #GtkToolShell interface.</doc> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="get_icon_size"> <callback name="get_icon_size"> <return-value transfer-ownership="none"> <type name="IconSize" c:type="GtkIconSize"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> <field name="get_orientation"> <callback name="get_orientation"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current orientation of @shell</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> <field name="get_style"> <callback name="get_style"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current style of @shell</doc> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> <field name="get_relief_style"> <callback name="get_relief_style"> <return-value transfer-ownership="none"> <doc xml:space="preserve">The relief style of buttons on @shell.</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> <field name="rebuild_menu"> <callback name="rebuild_menu"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> <field name="get_text_orientation"> <callback name="get_text_orientation"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text orientation of @shell</doc> <type name="Orientation" c:type="GtkOrientation"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> <field name="get_text_alignment"> <callback name="get_text_alignment"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text alignment of @shell</doc> <type name="gfloat" c:type="gfloat"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> <field name="get_ellipsize_mode"> <callback name="get_ellipsize_mode"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current ellipsize mode of @shell</doc> <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> <field name="get_text_size_group"> <callback name="get_text_size_group"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current text size group of @shell</doc> <type name="SizeGroup" c:type="GtkSizeGroup*"/> </return-value> <parameters> <parameter name="shell" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolShell</doc> <type name="ToolShell" c:type="GtkToolShell*"/> </parameter> </parameters> </callback> </field> </record> <class name="Toolbar" c:symbol-prefix="toolbar" c:type="GtkToolbar" parent="Container" glib:type-name="GtkToolbar" glib:get-type="gtk_toolbar_get_type" glib:type-struct="ToolbarClass"> <doc xml:space="preserve">A toolbar is created with a call to gtk_toolbar_new(). A toolbar can contain instances of a subclass of #GtkToolItem. To add a #GtkToolItem to the a toolbar, use gtk_toolbar_insert(). To remove an item from the toolbar use gtk_container_remove(). To add a button to the toolbar, add an instance of #GtkToolButton. Toolbar items can be visually grouped by adding instances of #GtkSeparatorToolItem to the toolbar. If the GtkToolbar child property âexpandâ is #TRUE and the property #GtkSeparatorToolItem:draw is set to #FALSE, the effect is to force all following items to the end of the toolbar. By default, a toolbar can be shrunk, upon which it will add an arrow button to show an overflow menu offering access to any #GtkToolItem child that has a proxy menu item. To disable this and request enough size for all children, call gtk_toolbar_set_show_arrow() to set #GtkToolbar:show-arrow to %FALSE. Creating a context menu for the toolbar can be done by connecting to the #GtkToolbar::popup-context-menu signal. # CSS nodes GtkToolbar has a single CSS node with name toolbar.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <implements name="ToolShell"/> <constructor name="new" c:identifier="gtk_toolbar_new"> <doc xml:space="preserve">Creates a new toolbar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the newly-created toolbar.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <virtual-method name="orientation_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </virtual-method> <virtual-method name="popup_context_menu"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="button_number" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="style_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="style" transfer-ownership="none"> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </parameter> </parameters> </virtual-method> <method name="get_drop_index" c:identifier="gtk_toolbar_get_drop_index" version="2.4"> <doc xml:space="preserve">Returns the position corresponding to the indicated point on @toolbar. This is useful when dragging items to the toolbar: this function returns the position a new item should be inserted. @x and @y are in @toolbar coordinates.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The position corresponding to the point (@x, @y) on the toolbar.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x coordinate of a point on the toolbar</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y coordinate of a point on the toolbar</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_icon_size" c:identifier="gtk_toolbar_get_icon_size"> <doc xml:space="preserve">Retrieves the icon size for the toolbar. See gtk_toolbar_set_icon_size().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current icon size for the icons on the toolbar.</doc> <type name="IconSize" c:type="GtkIconSize"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> </parameters> </method> <method name="get_item_index" c:identifier="gtk_toolbar_get_item_index" version="2.4"> <doc xml:space="preserve">Returns the position of @item on the toolbar, starting from 0. It is an error if @item is not a child of the toolbar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the position of item on the toolbar.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem that is a child of @toolbar</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </parameter> </parameters> </method> <method name="get_n_items" c:identifier="gtk_toolbar_get_n_items" version="2.4"> <doc xml:space="preserve">Returns the number of items on the toolbar.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of items on the toolbar</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> </parameters> </method> <method name="get_nth_item" c:identifier="gtk_toolbar_get_nth_item" version="2.4"> <doc xml:space="preserve">Returns the @n'th item on @toolbar, or %NULL if the toolbar does not contain an @n'th item.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The @n'th #GtkToolItem on @toolbar, or %NULL if there isnât an @n'th item.</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="n" transfer-ownership="none"> <doc xml:space="preserve">A position on the toolbar</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_relief_style" c:identifier="gtk_toolbar_get_relief_style" version="2.4"> <doc xml:space="preserve">Returns the relief style of buttons on @toolbar. See gtk_button_set_relief().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The relief style of buttons on @toolbar.</doc> <type name="ReliefStyle" c:type="GtkReliefStyle"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> </parameters> </method> <method name="get_show_arrow" c:identifier="gtk_toolbar_get_show_arrow" version="2.4"> <doc xml:space="preserve">Returns whether the toolbar has an overflow menu. See gtk_toolbar_set_show_arrow().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the toolbar has an overflow menu.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> </parameters> </method> <method name="get_style" c:identifier="gtk_toolbar_get_style"> <doc xml:space="preserve">Retrieves whether the toolbar has text, icons, or both . See gtk_toolbar_set_style().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current style of @toolbar</doc> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> </parameters> </method> <method name="insert" c:identifier="gtk_toolbar_insert" version="2.4"> <doc xml:space="preserve">Insert a #GtkToolItem into the toolbar at position @pos. If @pos is 0 the item is prepended to the start of the toolbar. If @pos is negative, the item is appended to the end of the toolbar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="item" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolItem</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">the position of the new item</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_drop_highlight_item" c:identifier="gtk_toolbar_set_drop_highlight_item" version="2.4"> <doc xml:space="preserve">Highlights @toolbar to give an idea of what it would look like if @item was added to @toolbar at the position indicated by @index_. If @item is %NULL, highlighting is turned off. In that case @index_ is ignored. The @tool_item passed to this function must not be part of any widget hierarchy. When an item is set as drop highlight item it can not added to any widget hierarchy or used as highlight item for another toolbar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="tool_item" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkToolItem, or %NULL to turn of highlighting</doc> <type name="ToolItem" c:type="GtkToolItem*"/> </parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">a position on @toolbar</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_icon_size" c:identifier="gtk_toolbar_set_icon_size"> <doc xml:space="preserve">This function sets the size of stock icons in the toolbar. You can call it both before you add the icons and after theyâve been added. The size you set will override user preferences for the default icon size. This should only be used for special-purpose toolbars, normal application toolbars should respect the user preferences for the size of icons.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">A #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="icon_size" transfer-ownership="none"> <doc xml:space="preserve">The #GtkIconSize that stock icons in the toolbar shall have.</doc> <type name="IconSize" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_show_arrow" c:identifier="gtk_toolbar_set_show_arrow" version="2.4"> <doc xml:space="preserve">Sets whether to show an overflow menu when @toolbar isnât allocated enough size to show all of its items. If %TRUE, items which canât fit in @toolbar, and which have a proxy menu item set by gtk_tool_item_set_proxy_menu_item() or #GtkToolItem::create-menu-proxy, will be available in an overflow menu, which can be opened by an added arrow button. If %FALSE, @toolbar will request enough size to fit all of its child items without any overflow.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="show_arrow" transfer-ownership="none"> <doc xml:space="preserve">Whether to show an overflow menu</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_style" c:identifier="gtk_toolbar_set_style"> <doc xml:space="preserve">Alters the view of @toolbar to display either icons only, text only, or both.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar.</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">the new style for @toolbar.</doc> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </parameter> </parameters> </method> <method name="unset_icon_size" c:identifier="gtk_toolbar_unset_icon_size"> <doc xml:space="preserve">Unsets toolbar icon size set with gtk_toolbar_set_icon_size(), so that user preferences will be used to determine the icon size.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> </parameters> </method> <method name="unset_style" c:identifier="gtk_toolbar_unset_style"> <doc xml:space="preserve">Unsets a toolbar style set with gtk_toolbar_set_style(), so that user preferences will be used to determine the toolbar style.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="toolbar" transfer-ownership="none"> <doc xml:space="preserve">a #GtkToolbar</doc> <type name="Toolbar" c:type="GtkToolbar*"/> </instance-parameter> </parameters> </method> <property name="icon-size" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The size of the icons in a toolbar is normally determined by the toolbar-icon-size setting. When this property is set, it overrides the setting. This should only be used for special-purpose toolbars, normal application toolbars should respect the user preferences for the size of icons.</doc> <type name="IconSize"/> </property> <property name="icon-size-set" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Is %TRUE if the icon-size property has been set.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="show-arrow" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="toolbar-style" writable="1" transfer-ownership="none"> <type name="ToolbarStyle"/> </property> <field name="container"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv"> <type name="ToolbarPrivate" c:type="GtkToolbarPrivate*"/> </field> <glib:signal name="focus-home-or-end" when="last" action="1"> <doc xml:space="preserve">A keybinding signal used internally by GTK+. This signal can't be used in application code</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal was handled, %FALSE if not</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="focus_home" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the first item should be focused</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="orientation-changed" when="first"> <doc xml:space="preserve">Emitted when the orientation of the toolbar changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkOrientation of the toolbar</doc> <type name="Orientation"/> </parameter> </parameters> </glib:signal> <glib:signal name="popup-context-menu" when="last"> <doc xml:space="preserve">Emitted when the user right-clicks the toolbar or uses the keybinding to display a popup menu. Application developers should handle this signal if they want to display a context menu on the toolbar. The context-menu should appear at the coordinates given by @x and @y. The mouse button number is given by the @button parameter. If the menu was popped up using the keybaord, @button is -1.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">return %TRUE if the signal was handled, %FALSE if not</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x coordinate of the point where the menu should appear</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y coordinate of the point where the menu should appear</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">the mouse button the user pressed, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="style-changed" when="first"> <doc xml:space="preserve">Emitted when the style of the toolbar changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkToolbarStyle of the toolbar</doc> <type name="ToolbarStyle"/> </parameter> </parameters> </glib:signal> </class> <record name="ToolbarClass" c:type="GtkToolbarClass" glib:is-gtype-struct-for="Toolbar"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="orientation_changed"> <callback name="orientation_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="toolbar" transfer-ownership="none"> <type name="Toolbar" c:type="GtkToolbar*"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </callback> </field> <field name="style_changed"> <callback name="style_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="toolbar" transfer-ownership="none"> <type name="Toolbar" c:type="GtkToolbar*"/> </parameter> <parameter name="style" transfer-ownership="none"> <type name="ToolbarStyle" c:type="GtkToolbarStyle"/> </parameter> </parameters> </callback> </field> <field name="popup_context_menu"> <callback name="popup_context_menu"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="toolbar" transfer-ownership="none"> <type name="Toolbar" c:type="GtkToolbar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="button_number" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ToolbarPrivate" c:type="GtkToolbarPrivate" disguised="1"> </record> <enumeration name="ToolbarSpaceStyle" deprecated="1" deprecated-version="3.20" glib:type-name="GtkToolbarSpaceStyle" glib:get-type="gtk_toolbar_space_style_get_type" c:type="GtkToolbarSpaceStyle"> <doc xml:space="preserve">Whether spacers are vertical lines or just blank.</doc> <member name="empty" value="0" c:identifier="GTK_TOOLBAR_SPACE_EMPTY" glib:nick="empty"> <doc xml:space="preserve">Use blank spacers.</doc> </member> <member name="line" value="1" c:identifier="GTK_TOOLBAR_SPACE_LINE" glib:nick="line"> <doc xml:space="preserve">Use vertical lines for spacers.</doc> </member> </enumeration> <enumeration name="ToolbarStyle" glib:type-name="GtkToolbarStyle" glib:get-type="gtk_toolbar_style_get_type" c:type="GtkToolbarStyle"> <doc xml:space="preserve">Used to customize the appearance of a #GtkToolbar. Note that setting the toolbar style overrides the userâs preferences for the default toolbar style. Note that if the button has only a label set and GTK_TOOLBAR_ICONS is used, the label will be visible, and vice versa.</doc> <member name="icons" value="0" c:identifier="GTK_TOOLBAR_ICONS" glib:nick="icons"> <doc xml:space="preserve">Buttons display only icons in the toolbar.</doc> </member> <member name="text" value="1" c:identifier="GTK_TOOLBAR_TEXT" glib:nick="text"> <doc xml:space="preserve">Buttons display only text labels in the toolbar.</doc> </member> <member name="both" value="2" c:identifier="GTK_TOOLBAR_BOTH" glib:nick="both"> <doc xml:space="preserve">Buttons display text and icons in the toolbar.</doc> </member> <member name="both_horiz" value="3" c:identifier="GTK_TOOLBAR_BOTH_HORIZ" glib:nick="both-horiz"> <doc xml:space="preserve">Buttons display icons and text alongside each other, rather than vertically stacked</doc> </member> </enumeration> <class name="Tooltip" c:symbol-prefix="tooltip" c:type="GtkTooltip" parent="GObject.Object" glib:type-name="GtkTooltip" glib:get-type="gtk_tooltip_get_type"> <doc xml:space="preserve">Basic tooltips can be realized simply by using gtk_widget_set_tooltip_text() or gtk_widget_set_tooltip_markup() without any explicit tooltip object. When you need a tooltip with a little more fancy contents, like adding an image, or you want the tooltip to have different contents per #GtkTreeView row or cell, you will have to do a little more work: - Set the #GtkWidget:has-tooltip property to %TRUE, this will make GTK+ monitor the widget for motion and related events which are needed to determine when and where to show a tooltip. - Connect to the #GtkWidget::query-tooltip signal. This signal will be emitted when a tooltip is supposed to be shown. One of the arguments passed to the signal handler is a GtkTooltip object. This is the object that we are about to display as a tooltip, and can be manipulated in your callback using functions like gtk_tooltip_set_icon(). There are functions for setting the tooltipâs markup, setting an image from a named icon, or even putting in a custom widget. Return %TRUE from your query-tooltip handler. This causes the tooltip to be show. If you return %FALSE, it will not be shown. In the probably rare case where you want to have even more control over the tooltip that is about to be shown, you can set your own #GtkWindow which will be used as tooltip window. This works as follows: - Set #GtkWidget:has-tooltip and connect to #GtkWidget::query-tooltip as before. Use gtk_widget_set_tooltip_window() to set a #GtkWindow created by you as tooltip window. - In the #GtkWidget::query-tooltip callback you can access your window using gtk_widget_get_tooltip_window() and manipulate as you wish. The semantics of the return value are exactly as before, return %TRUE to show the window, %FALSE to not show it.</doc> <function name="trigger_tooltip_query" c:identifier="gtk_tooltip_trigger_tooltip_query" version="2.12"> <doc xml:space="preserve">Triggers a new tooltip query on @display, in order to update the current visible tooltip, or to show/hide the current tooltip. This function is useful to call when, for example, the state of the widget changed by a key press.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="display" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDisplay</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> </parameters> </function> <method name="set_custom" c:identifier="gtk_tooltip_set_custom" version="2.12"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </instance-parameter> <parameter name="custom_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget, or %NULL to unset the old custom widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_icon" c:identifier="gtk_tooltip_set_icon" version="2.12"> <doc xml:space="preserve">Sets the icon of the tooltip (which is in front of the text) to be @pixbuf. If @pixbuf is %NULL, the image will be hidden.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </instance-parameter> <parameter name="pixbuf" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkPixbuf, or %NULL</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_icon_from_gicon" c:identifier="gtk_tooltip_set_icon_from_gicon" version="2.20"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </instance-parameter> <parameter name="gicon" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GIcon representing the icon, or %NULL</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_icon_from_icon_name" c:identifier="gtk_tooltip_set_icon_from_icon_name" version="2.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an icon name, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_icon_from_stock" c:identifier="gtk_tooltip_set_icon_from_stock" version="2.12" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the icon of the tooltip (which is in front of the text) to be the stock item indicated by @stock_id with the size indicated by @size. If @stock_id is %NULL, the image will be hidden.</doc> <doc-deprecated xml:space="preserve">Use gtk_tooltip_set_icon_from_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a stock id, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="set_markup" c:identifier="gtk_tooltip_set_markup" version="2.12"> <doc xml:space="preserve">Sets the text of the tooltip to be @markup, which is marked up with the [Pango text markup language][PangoMarkupFormat]. If @markup is %NULL, the label will be hidden.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </instance-parameter> <parameter name="markup" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a markup string (see [Pango markup format][PangoMarkupFormat]) or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_text" c:identifier="gtk_tooltip_set_text" version="2.12"> <doc xml:space="preserve">Sets the text of the tooltip to be @text. If @text is %NULL, the label will be hidden. See also gtk_tooltip_set_markup().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </instance-parameter> <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a text string or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_tip_area" c:identifier="gtk_tooltip_set_tip_area" version="2.12"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </instance-parameter> <parameter name="rect" transfer-ownership="none"> <doc xml:space="preserve">a #GdkRectangle</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> </parameters> </method> </class> <class name="ToplevelAccessible" c:symbol-prefix="toplevel_accessible" c:type="GtkToplevelAccessible" parent="Atk.Object" glib:type-name="GtkToplevelAccessible" glib:get-type="gtk_toplevel_accessible_get_type" glib:type-struct="ToplevelAccessibleClass"> <method name="get_children" c:identifier="gtk_toplevel_accessible_get_children"> <return-value transfer-ownership="none"> <doc xml:space="preserve">List of children.</doc> <type name="GLib.List" c:type="GList*"> <type name="Window"/> </type> </return-value> <parameters> <instance-parameter name="accessible" transfer-ownership="none"> <type name="ToplevelAccessible" c:type="GtkToplevelAccessible*"/> </instance-parameter> </parameters> </method> <field name="parent"> <type name="Atk.Object" c:type="AtkObject"/> </field> <field name="priv"> <type name="ToplevelAccessiblePrivate" c:type="GtkToplevelAccessiblePrivate*"/> </field> </class> <record name="ToplevelAccessibleClass" c:type="GtkToplevelAccessibleClass" glib:is-gtype-struct-for="ToplevelAccessible"> <field name="parent_class"> <type name="Atk.ObjectClass" c:type="AtkObjectClass"/> </field> </record> <record name="ToplevelAccessiblePrivate" c:type="GtkToplevelAccessiblePrivate" disguised="1"> </record> <callback name="TranslateFunc" c:type="GtkTranslateFunc" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The function used to translate messages in e.g. #GtkIconFactory and #GtkActionGroup.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the translated message</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The id of the message. In #GtkActionGroup this will be a label or tooltip from a #GtkActionEntry.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="func_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">user data passed in when registering the function</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="TreeCellDataFunc" c:type="GtkTreeCellDataFunc"> <doc xml:space="preserve">A function to set the properties of a cell instead of just using the straight mapping between the cell and the model. This is useful for customizing the cell renderer. For example, a function might get an integer from the @tree_model, and render it to the âtextâ attribute of âcellâ by converting it to its written equivalent. This is set by calling gtk_tree_view_column_set_cell_data_func()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellRenderer that is being rendered by @tree_column</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeModel being rendered</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter of the current row rendered</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="TreeDestroyCountFunc" c:type="GtkTreeDestroyCountFunc"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="children" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <interface name="TreeDragDest" c:symbol-prefix="tree_drag_dest" c:type="GtkTreeDragDest" glib:type-name="GtkTreeDragDest" glib:get-type="gtk_tree_drag_dest_get_type" glib:type-struct="TreeDragDestIface"> <virtual-method name="drag_data_received" invoker="drag_data_received"> <doc xml:space="preserve">Asks the #GtkTreeDragDest to insert a row before the path @dest, deriving the contents of the row from @selection_data. 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!</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether a new row was created before position @dest</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_dest" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragDest</doc> <type name="TreeDragDest" c:type="GtkTreeDragDest*"/> </instance-parameter> <parameter name="dest" transfer-ownership="none"> <doc xml:space="preserve">row to drop in front of</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">data to drop</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_drop_possible" invoker="row_drop_possible"> <doc xml:space="preserve">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 @selection_data 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a drop is possible before @dest_path</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_dest" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragDest</doc> <type name="TreeDragDest" c:type="GtkTreeDragDest*"/> </instance-parameter> <parameter name="dest_path" transfer-ownership="none"> <doc xml:space="preserve">destination row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">the data being dragged</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </virtual-method> <method name="drag_data_received" c:identifier="gtk_tree_drag_dest_drag_data_received"> <doc xml:space="preserve">Asks the #GtkTreeDragDest to insert a row before the path @dest, deriving the contents of the row from @selection_data. 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!</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether a new row was created before position @dest</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_dest" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragDest</doc> <type name="TreeDragDest" c:type="GtkTreeDragDest*"/> </instance-parameter> <parameter name="dest" transfer-ownership="none"> <doc xml:space="preserve">row to drop in front of</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">data to drop</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </method> <method name="row_drop_possible" c:identifier="gtk_tree_drag_dest_row_drop_possible"> <doc xml:space="preserve">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 @selection_data 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a drop is possible before @dest_path</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_dest" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragDest</doc> <type name="TreeDragDest" c:type="GtkTreeDragDest*"/> </instance-parameter> <parameter name="dest_path" transfer-ownership="none"> <doc xml:space="preserve">destination row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">the data being dragged</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </method> </interface> <record name="TreeDragDestIface" c:type="GtkTreeDragDestIface" glib:is-gtype-struct-for="TreeDragDest"> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="drag_data_received"> <callback name="drag_data_received"> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether a new row was created before position @dest</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="drag_dest" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragDest</doc> <type name="TreeDragDest" c:type="GtkTreeDragDest*"/> </parameter> <parameter name="dest" transfer-ownership="none"> <doc xml:space="preserve">row to drop in front of</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">data to drop</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </callback> </field> <field name="row_drop_possible"> <callback name="row_drop_possible"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a drop is possible before @dest_path</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="drag_dest" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragDest</doc> <type name="TreeDragDest" c:type="GtkTreeDragDest*"/> </parameter> <parameter name="dest_path" transfer-ownership="none"> <doc xml:space="preserve">destination row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">the data being dragged</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </callback> </field> </record> <interface name="TreeDragSource" c:symbol-prefix="tree_drag_source" c:type="GtkTreeDragSource" glib:type-name="GtkTreeDragSource" glib:get-type="gtk_tree_drag_source_get_type" glib:type-struct="TreeDragSourceIface"> <virtual-method name="drag_data_delete" invoker="drag_data_delete"> <doc xml:space="preserve">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!</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row was successfully deleted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row that was being dragged</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_data_get" invoker="drag_data_get"> <doc xml:space="preserve">Asks the #GtkTreeDragSource to fill in @selection_data with a representation of the row at @path. @selection_data->target gives the required type of the data. Should robustly handle a @path no longer found in the model!</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if data of the required type was provided</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row that was dragged</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData to fill with data from the dragged row</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_draggable" invoker="row_draggable"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row can be dragged</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row on which user is initiating a drag</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <method name="drag_data_delete" c:identifier="gtk_tree_drag_source_drag_data_delete"> <doc xml:space="preserve">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!</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row was successfully deleted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row that was being dragged</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="drag_data_get" c:identifier="gtk_tree_drag_source_drag_data_get"> <doc xml:space="preserve">Asks the #GtkTreeDragSource to fill in @selection_data with a representation of the row at @path. @selection_data->target gives the required type of the data. Should robustly handle a @path no longer found in the model!</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if data of the required type was provided</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row that was dragged</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData to fill with data from the dragged row</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </method> <method name="row_draggable" c:identifier="gtk_tree_drag_source_row_draggable"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row can be dragged</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row on which user is initiating a drag</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> </interface> <record name="TreeDragSourceIface" c:type="GtkTreeDragSourceIface" glib:is-gtype-struct-for="TreeDragSource"> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="row_draggable"> <callback name="row_draggable"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row can be dragged</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row on which user is initiating a drag</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> <field name="drag_data_get"> <callback name="drag_data_get"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if data of the required type was provided</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row that was dragged</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData to fill with data from the dragged row</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> </parameters> </callback> </field> <field name="drag_data_delete"> <callback name="drag_data_delete"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row was successfully deleted</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="drag_source" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeDragSource</doc> <type name="TreeDragSource" c:type="GtkTreeDragSource*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">row that was being dragged</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> </record> <record name="TreeIter" c:type="GtkTreeIter" glib:type-name="GtkTreeIter" glib:get-type="gtk_tree_iter_get_type" c:symbol-prefix="tree_iter"> <doc xml:space="preserve">The #GtkTreeIter is the primary structure for accessing a #GtkTreeModel. Models are expected to put a unique integer in the @stamp member, and put model-specific data in the three @user_data members.</doc> <field name="stamp" writable="1"> <doc xml:space="preserve">a unique stamp to catch invalid iterators</doc> <type name="gint" c:type="gint"/> </field> <field name="user_data" writable="1"> <doc xml:space="preserve">model-specific data</doc> <type name="gpointer" c:type="gpointer"/> </field> <field name="user_data2" writable="1"> <doc xml:space="preserve">model-specific data</doc> <type name="gpointer" c:type="gpointer"/> </field> <field name="user_data3" writable="1"> <doc xml:space="preserve">model-specific data</doc> <type name="gpointer" c:type="gpointer"/> </field> <method name="copy" c:identifier="gtk_tree_iter_copy"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated copy of @iter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_tree_iter_free"> <doc xml:space="preserve">Frees an iterator that has been allocated by gtk_tree_iter_copy(). This function is mainly used for language bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a dynamically allocated tree iterator</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </instance-parameter> </parameters> </method> </record> <callback name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"> <doc xml:space="preserve">A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive integer if @a sorts before @b, @a sorts with @b, or @a sorts after @b respectively. If two iters compare as equal, their order in the sorted model is undefined. In order to ensure that the #GtkTreeSortable behaves as expected, the GtkTreeIterCompareFunc must define a partial order on the model, i.e. it must be reflexive, antisymmetric and transitive. For example, if @model is a product catalogue, then a compare function for the âpriceâ column could be one which returns `price_of(@a) - price_of(@b)`.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a negative integer, zero or a positive integer depending on whether @a sorts before, with or after @b</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeModel the comparison is within</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="a" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter in @model</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="b" transfer-ownership="none"> <doc xml:space="preserve">Another #GtkTreeIter in @model</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> <doc xml:space="preserve">Data passed when the compare func is assigned e.g. by gtk_tree_sortable_set_sort_func()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <interface name="TreeModel" c:symbol-prefix="tree_model" c:type="GtkTreeModel" glib:type-name="GtkTreeModel" glib:get-type="gtk_tree_model_get_type" glib:type-struct="TreeModelIface"> <doc xml:space="preserve">The #GtkTreeModel interface defines a generic tree interface for use by the #GtkTreeView widget. It is an abstract interface, and is designed to be usable with any appropriate data structure. The programmer just has to implement this interface on their own data type for it to be viewable by a #GtkTreeView widget. The model is represented as a hierarchical tree of strongly-typed, columned data. In other words, the model can be seen as a tree where every node has different values depending on which column is being queried. The type of data found in a column is determined by using the GType system (ie. #G_TYPE_INT, #GTK_TYPE_BUTTON, #G_TYPE_POINTER, etc). The types are homogeneous per column across all nodes. It is important to note that this interface only provides a way of examining a model and observing changes. The implementation of each individual model decides how and if changes are made. In order to make life simpler for programmers who do not need to write their own specialized model, two generic models are provided â the #GtkTreeStore and the #GtkListStore. To use these, the developer simply pushes data into these models as necessary. These models provide the data structure as well as all appropriate tree interfaces. As a result, implementing drag and drop, sorting, and storing data is trivial. For the vast majority of trees and lists, these two models are sufficient. Models are accessed on a node/column level of granularity. One can query for the value of a model at a certain node and a certain column on that node. There are two structures used to reference a particular node in a model. They are the #GtkTreePath-struct and the #GtkTreeIter-struct (âiterâ is short for iterator). Most of the interface consists of operations on a #GtkTreeIter-struct. A path is essentially a potential node. It is a location on a model that may or may not actually correspond to a node on a specific model. The #GtkTreePath-struct can be converted into either an array of unsigned integers or a string. The string form is a list of numbers separated by a colon. Each number refers to the offset at that level. Thus, the path `0` refers to the root node and the path `2:4` refers to the fifth child of the third node. By contrast, a #GtkTreeIter-struct is a reference to a specific node on a specific model. It is a generic struct with an integer and three generic pointers. These are filled in by the model in a model-specific way. One can convert a path to an iterator by calling gtk_tree_model_get_iter(). These iterators are the primary way of accessing a model and are similar to the iterators used by #GtkTextBuffer. They are generally statically allocated on the stack and only used for a short time. The model interface defines a set of operations using them for navigating the model. It is expected that models fill in the iterator with private data. For example, the #GtkListStore model, which is internally a simple linked list, stores a list node in one of the pointers. The #GtkTreeModelSort stores an array and an offset in two of the pointers. Additionally, there is an integer field. This field is generally filled with a unique stamp per model. This stamp is for catching errors resulting from using invalid iterators with a model. The lifecycle of an iterator can be a little confusing at first. Iterators are expected to always be valid for as long as the model is unchanged (and doesnât emit a signal). The model is considered to own all outstanding iterators and nothing needs to be done to free them from the userâs point of view. Additionally, some models guarantee that an iterator is valid for as long as the node it refers to is valid (most notably the #GtkTreeStore and #GtkListStore). Although generally uninteresting, as one always has to allow for the case where iterators do not persist beyond a signal, some very important performance enhancements were made in the sort model. As a result, the #GTK_TREE_MODEL_ITERS_PERSIST flag was added to indicate this behavior. To help show some common operation of a model, some examples are provided. The first example shows three ways of getting the iter at the location `3:2:5`. While the first method shown is easier, the second is much more common, as you often get paths from callbacks. ## Acquiring a #GtkTreeIter-struct |[<!-- language="C" --> // Three ways of getting the iter pointing to the location GtkTreePath *path; GtkTreeIter iter; GtkTreeIter parent_iter; // get the iterator from a string gtk_tree_model_get_iter_from_string (model, &iter, "3:2:5"); // get the iterator from a path path = gtk_tree_path_new_from_string ("3:2:5"); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_path_free (path); // walk the tree to find the iterator gtk_tree_model_iter_nth_child (model, &iter, NULL, 3); parent_iter = iter; gtk_tree_model_iter_nth_child (model, &iter, &parent_iter, 2); parent_iter = iter; gtk_tree_model_iter_nth_child (model, &iter, &parent_iter, 5); ]| This second example shows a quick way of iterating through a list and getting a string and an integer from each row. The populate_model() function used below is not shown, as it is specific to the #GtkListStore. For information on how to write such a function, see the #GtkListStore documentation. ## Reading data from a #GtkTreeModel |[<!-- language="C" --> enum { STRING_COLUMN, INT_COLUMN, N_COLUMNS }; ... GtkTreeModel *list_store; GtkTreeIter iter; gboolean valid; gint row_count = 0; // make a new list_store list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_INT); // Fill the list store with data populate_model (list_store); // Get the first iter in the list, check it is valid and walk // through the list, reading each row. valid = gtk_tree_model_get_iter_first (list_store, &iter); while (valid) { gchar *str_data; gint int_data; // Make sure you terminate calls to gtk_tree_model_get() with a â-1â value gtk_tree_model_get (list_store, &iter, STRING_COLUMN, &str_data, INT_COLUMN, &int_data, -1); // Do something with the data g_print ("Row %d: (%s,%d)\n", row_count, str_data, int_data); g_free (str_data); valid = gtk_tree_model_iter_next (list_store, &iter); row_count++; } ]| The #GtkTreeModel interface contains two methods for reference counting: gtk_tree_model_ref_node() and gtk_tree_model_unref_node(). These two methods are optional to implement. The reference counting is meant as a way for views to let models know when nodes are being displayed. #GtkTreeView will take a reference on a node when it is visible, which means the node is either in the toplevel or expanded. Being displayed does not mean that the node is currently directly visible to the user in the viewport. Based on this reference counting scheme a caching model, for example, can decide whether or not to cache a node based on the reference count. A file-system based model would not want to keep the entire file hierarchy in memory, but just the folders that are currently expanded in every current view. When working with reference counting, the following rules must be taken into account: - Never take a reference on a node without owning a reference on its parent. This means that all parent nodes of a referenced node must be referenced as well. - Outstanding references on a deleted node are not released. This is not possible because the node has already been deleted by the time the row-deleted signal is received. - Models are not obligated to emit a signal on rows of which none of its siblings are referenced. To phrase this differently, signals are only required for levels in which nodes are referenced. For the root level however, signals must be emitted at all times (however the root level is always referenced when any view is attached).</doc> <virtual-method name="get_column_type" invoker="get_column_type"> <doc xml:space="preserve">Returns the type of the column.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the type of the column</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the column index</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_flags" invoker="get_flags"> <doc xml:space="preserve">Returns a set of flags supported by this interface. The flags are a bitwise combination of #GtkTreeModelFlags. The flags supported should not change during the lifetime of the @tree_model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the flags supported by this interface</doc> <type name="TreeModelFlags" c:type="GtkTreeModelFlags"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_iter" invoker="get_iter"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter was set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the uninitialized #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_n_columns" invoker="get_n_columns"> <doc xml:space="preserve">Returns the number of columns supported by @tree_model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of columns</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_path" invoker="get_path"> <doc xml:space="preserve">Returns a newly-created #GtkTreePath-struct referenced by @iter. This path should be freed with gtk_tree_path_free().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-created #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_value" invoker="get_value"> <doc xml:space="preserve">Initializes and sets @value to that at @column. When done with @value, g_value_unset() needs to be called to free any allocated memory.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column to lookup the value at</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">an empty #GValue to set</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </virtual-method> <virtual-method name="iter_children" invoker="iter_children"> <doc xml:space="preserve">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);`</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter has been set to the first child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkTreeIter-struct to be set to the child</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="iter_has_child" invoker="iter_has_child"> <doc xml:space="preserve">Returns %TRUE if @iter has children, %FALSE otherwise.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has children</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct to test for children</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="iter_n_children" invoker="iter_n_children"> <doc xml:space="preserve">Returns the number of children that @iter has. As a special case, if @iter is %NULL, then the number of toplevel nodes is returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of children of @iter</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="iter_next" invoker="iter_next"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has been changed to the next node</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="iter_nth_child" invoker="iter_nth_child"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @parent has an @n-th child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct to set to the nth child</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct to get the child from, or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="n" transfer-ownership="none"> <doc xml:space="preserve">the index of the desired child</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="iter_parent" invoker="iter_parent"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter is set to the parent of @child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkTreeIter-struct to set to the parent</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="iter_previous" invoker="iter_previous" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has been changed to the previous node</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="ref_node" invoker="ref_node"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_changed" invoker="row_changed"> <doc xml:space="preserve">Emits the #GtkTreeModel::row-changed signal on @tree_model.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the changed row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the changed row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_deleted" invoker="row_deleted"> <doc xml:space="preserve">Emits the #GtkTreeModel::row-deleted signal on @tree_model. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the previous location of the deleted row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_has_child_toggled" invoker="row_has_child_toggled"> <doc xml:space="preserve">Emits the #GtkTreeModel::row-has-child-toggled signal on @tree_model. This should be called by models after the child state of a node changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the changed row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the changed row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_inserted" invoker="row_inserted"> <doc xml:space="preserve">Emits the #GtkTreeModel::row-inserted signal on @tree_model.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the inserted row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the inserted row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <virtual-method name="rows_reordered" invoker="rows_reordered" introspectable="0"> <doc xml:space="preserve">Emits the #GtkTreeModel::rows-reordered signal on @tree_model. This should be called by models when their rows have been reordered.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the tree node whose children have been reordered</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the node whose children have been reordered, or %NULL if the depth of @path is 0</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">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`</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="unref_node" invoker="unref_node"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <method name="filter_new" c:identifier="gtk_tree_model_filter_new" version="2.4"> <doc xml:space="preserve">Creates a new #GtkTreeModel, with @child_model as the child_model and @root as the virtual root.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A new #GtkTreeModel.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="child_model" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModel.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="root" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreePath or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="foreach" c:identifier="gtk_tree_model_foreach"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">a function to be called on each row</doc> <type name="TreeModelForeachFunc" c:type="GtkTreeModelForeachFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to passed to @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="get" c:identifier="gtk_tree_model_get" introspectable="0"> <doc xml:space="preserve">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, &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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a row in @tree_model</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">pairs of column number and value return locations, terminated by -1</doc> <varargs/> </parameter> </parameters> </method> <method name="get_column_type" c:identifier="gtk_tree_model_get_column_type"> <doc xml:space="preserve">Returns the type of the column.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the type of the column</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the column index</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_flags" c:identifier="gtk_tree_model_get_flags"> <doc xml:space="preserve">Returns a set of flags supported by this interface. The flags are a bitwise combination of #GtkTreeModelFlags. The flags supported should not change during the lifetime of the @tree_model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the flags supported by this interface</doc> <type name="TreeModelFlags" c:type="GtkTreeModelFlags"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> </parameters> </method> <method name="get_iter" c:identifier="gtk_tree_model_get_iter"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter was set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the uninitialized #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="get_iter_first" c:identifier="gtk_tree_model_get_iter_first"> <doc xml:space="preserve">Initializes @iter with the first iterator in the tree (the one at the path "0") and returns %TRUE. Returns %FALSE if the tree is empty.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter was set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the uninitialized #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="get_iter_from_string" c:identifier="gtk_tree_model_get_iter_from_string"> <doc xml:space="preserve">Sets @iter to a valid iterator pointing to @path_string, if it exists. Otherwise, @iter is left invalid and %FALSE is returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter was set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">an uninitialized #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path_string" transfer-ownership="none"> <doc xml:space="preserve">a string representation of a #GtkTreePath-struct</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_n_columns" c:identifier="gtk_tree_model_get_n_columns"> <doc xml:space="preserve">Returns the number of columns supported by @tree_model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of columns</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> </parameters> </method> <method name="get_path" c:identifier="gtk_tree_model_get_path"> <doc xml:space="preserve">Returns a newly-created #GtkTreePath-struct referenced by @iter. This path should be freed with gtk_tree_path_free().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-created #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="get_string_from_iter" c:identifier="gtk_tree_model_get_string_from_iter" version="2.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated string. Must be freed with g_free().</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="get_valist" c:identifier="gtk_tree_model_get_valist" introspectable="0"> <doc xml:space="preserve">See gtk_tree_model_get(), this version takes a va_list for language bindings to use.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a row in @tree_model</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">va_list of column/return location pairs</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="get_value" c:identifier="gtk_tree_model_get_value"> <doc xml:space="preserve">Initializes and sets @value to that at @column. When done with @value, g_value_unset() needs to be called to free any allocated memory.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column to lookup the value at</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">an empty #GValue to set</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="iter_children" c:identifier="gtk_tree_model_iter_children"> <doc xml:space="preserve">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);`</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter has been set to the first child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkTreeIter-struct to be set to the child</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="iter_has_child" c:identifier="gtk_tree_model_iter_has_child"> <doc xml:space="preserve">Returns %TRUE if @iter has children, %FALSE otherwise.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has children</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct to test for children</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="iter_n_children" c:identifier="gtk_tree_model_iter_n_children"> <doc xml:space="preserve">Returns the number of children that @iter has. As a special case, if @iter is %NULL, then the number of toplevel nodes is returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of children of @iter</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="iter_next" c:identifier="gtk_tree_model_iter_next"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has been changed to the next node</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="iter_nth_child" c:identifier="gtk_tree_model_iter_nth_child"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @parent has an @n-th child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct to set to the nth child</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct to get the child from, or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="n" transfer-ownership="none"> <doc xml:space="preserve">the index of the desired child</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_parent" c:identifier="gtk_tree_model_iter_parent"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter is set to the parent of @child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkTreeIter-struct to set to the parent</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="iter_previous" c:identifier="gtk_tree_model_iter_previous" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has been changed to the previous node</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="ref_node" c:identifier="gtk_tree_model_ref_node"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="row_changed" c:identifier="gtk_tree_model_row_changed"> <doc xml:space="preserve">Emits the #GtkTreeModel::row-changed signal on @tree_model.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the changed row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the changed row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="row_deleted" c:identifier="gtk_tree_model_row_deleted"> <doc xml:space="preserve">Emits the #GtkTreeModel::row-deleted signal on @tree_model. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the previous location of the deleted row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="row_has_child_toggled" c:identifier="gtk_tree_model_row_has_child_toggled"> <doc xml:space="preserve">Emits the #GtkTreeModel::row-has-child-toggled signal on @tree_model. This should be called by models after the child state of a node changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the changed row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the changed row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="row_inserted" c:identifier="gtk_tree_model_row_inserted"> <doc xml:space="preserve">Emits the #GtkTreeModel::row-inserted signal on @tree_model.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the inserted row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the inserted row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="rows_reordered" c:identifier="gtk_tree_model_rows_reordered" shadowed-by="rows_reordered_with_length" introspectable="0"> <doc xml:space="preserve">Emits the #GtkTreeModel::rows-reordered signal on @tree_model. This should be called by models when their rows have been reordered.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the tree node whose children have been reordered</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the node whose children have been reordered, or %NULL if the depth of @path is 0</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">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`</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="rows_reordered_with_length" c:identifier="gtk_tree_model_rows_reordered_with_length" shadows="rows_reordered" version="3.10"> <doc xml:space="preserve">Emits the #GtkTreeModel::rows-reordered signal on @tree_model. This should be called by models when their rows have been reordered.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the tree node whose children have been reordered</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the node whose children have been reordered, or %NULL if the depth of @path is 0</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">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`</doc> <array length="3" zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">length of @new_order array</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="sort_new_with_model" c:identifier="gtk_tree_model_sort_new_with_model"> <doc xml:space="preserve">Creates a new #GtkTreeModel, with @child_model as the child model.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A new #GtkTreeModel.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="child_model" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> </parameters> </method> <method name="unref_node" c:identifier="gtk_tree_model_unref_node"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <glib:signal name="row-changed" when="last"> <doc xml:space="preserve">This signal is emitted when a row in the model has changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct identifying the changed row</doc> <type name="TreePath"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the changed row</doc> <type name="TreeIter"/> </parameter> </parameters> </glib:signal> <glib:signal name="row-deleted" when="first"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct identifying the row</doc> <type name="TreePath"/> </parameter> </parameters> </glib:signal> <glib:signal name="row-has-child-toggled" when="last"> <doc xml:space="preserve">This signal is emitted when a row has gotten the first child row or lost its last child row.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct identifying the row</doc> <type name="TreePath"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the row</doc> <type name="TreeIter"/> </parameter> </parameters> </glib:signal> <glib:signal name="row-inserted" when="first"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct identifying the new row</doc> <type name="TreePath"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the new row</doc> <type name="TreeIter"/> </parameter> </parameters> </glib:signal> <glib:signal name="rows-reordered" when="first" introspectable="0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct identifying the tree node whose children have been reordered</doc> <type name="TreePath"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the node whose children have been reordered, or %NULL if the depth of @path is 0</doc> <type name="TreeIter"/> </parameter> <parameter name="new_order" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">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`</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </glib:signal> </interface> <class name="TreeModelFilter" c:symbol-prefix="tree_model_filter" c:type="GtkTreeModelFilter" parent="GObject.Object" glib:type-name="GtkTreeModelFilter" glib:get-type="gtk_tree_model_filter_get_type" glib:type-struct="TreeModelFilterClass"> <doc xml:space="preserve">A #GtkTreeModelFilter is a tree model which wraps another tree model, and can do the following things: - Filter specific rows, based on data from a âvisible columnâ, a column storing booleans indicating whether the row should be filtered or not, or based on the return value of a âvisible functionâ, which gets a model, iter and user_data and returns a boolean indicating whether the row should be filtered or not. - Modify the âappearanceâ of the model, using a modify function. This is extremely powerful and allows for just changing some values and also for creating a completely different model based on the given child model. - Set a different root node, also known as a âvirtual rootâ. You can pass in a #GtkTreePath indicating the root node for the filter at construction time. The basic API is similar to #GtkTreeModelSort. For an example on its usage, see the section on #GtkTreeModelSort. When using #GtkTreeModelFilter, it is important to realize that #GtkTreeModelFilter maintains an internal cache of all nodes which are visible in its clients. The cache is likely to be a subtree of the tree exposed by the child model. #GtkTreeModelFilter will not cache the entire child model when unnecessary to not compromise the caching mechanism that is exposed by the reference counting scheme. If the child model implements reference counting, unnecessary signals may not be emitted because of reference counting rule 3, see the #GtkTreeModel documentation. (Note that e.g. #GtkTreeStore does not implement reference counting and will always emit all signals, even when the receiving node is not visible). Because of this, limitations for possible visible functions do apply. In general, visible functions should only use data or properties from the node for which the visibility state must be determined, its siblings or its parents. Usually, having a dependency on the state of any child node is not possible, unless references are taken on these explicitly. When no such reference exists, no signals may be received for these child nodes (see reference couting rule number 3 in the #GtkTreeModel section). Determining the visibility state of a given node based on the state of its child nodes is a frequently occurring use case. Therefore, #GtkTreeModelFilter explicitly supports this. For example, when a node does not have any children, you might not want the node to be visible. As soon as the first row is added to the nodeâs child level (or the last row removed), the nodeâs visibility should be updated. This introduces a dependency from the node on its child nodes. In order to accommodate this, #GtkTreeModelFilter must make sure the necessary signals are received from the child model. This is achieved by building, for all nodes which are exposed as visible nodes to #GtkTreeModelFilter's clients, the child level (if any) and take a reference on the first node in this level. Furthermore, for every row-inserted, row-changed or row-deleted signal (also these which were not handled because the node was not cached), #GtkTreeModelFilter will check if the visibility state of any parent node has changed. Beware, however, that this explicit support is limited to these two cases. For example, if you want a node to be visible only if two nodes in a childâs child level (2 levels deeper) are visible, you are on your own. In this case, either rely on #GtkTreeStore to emit all signals because it does not implement reference counting, or for models that do implement reference counting, obtain references on these child levels yourself.</doc> <implements name="TreeDragSource"/> <implements name="TreeModel"/> <virtual-method name="modify"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="child_model" transfer-ownership="none"> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="GValue*"/> </parameter> <parameter name="column" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="visible"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="self" transfer-ownership="none"> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="child_model" transfer-ownership="none"> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </virtual-method> <method name="clear_cache" c:identifier="gtk_tree_model_filter_clear_cache" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter.</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> </parameters> </method> <method name="convert_child_iter_to_iter" c:identifier="gtk_tree_model_filter_convert_child_iter_to_iter" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @filter_iter was set, i.e. if @child_iter is a valid iterator pointing to a visible row in child model.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter.</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="filter_iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An uninitialized #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="child_iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter pointing to a row on the child model.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="convert_child_path_to_path" c:identifier="gtk_tree_model_filter_convert_child_path_to_path" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A newly allocated #GtkTreePath, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter.</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="child_path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath to convert.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="convert_iter_to_child_iter" c:identifier="gtk_tree_model_filter_convert_iter_to_child_iter" version="2.4"> <doc xml:space="preserve">Sets @child_iter to point to the row pointed to by @filter_iter.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter.</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="child_iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An uninitialized #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="filter_iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter pointing to a row on @filter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="convert_path_to_child_path" c:identifier="gtk_tree_model_filter_convert_path_to_child_path" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A newly allocated #GtkTreePath, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter.</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="filter_path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath to convert.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="get_model" c:identifier="gtk_tree_model_filter_get_model" version="2.4"> <doc xml:space="preserve">Returns a pointer to the child model of @filter.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A pointer to a #GtkTreeModel.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter.</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> </parameters> </method> <method name="refilter" c:identifier="gtk_tree_model_filter_refilter" version="2.4"> <doc xml:space="preserve">Emits ::row_changed for each row in the child model, which causes the filter to re-evaluate whether a row is visible or not.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter.</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> </parameters> </method> <method name="set_modify_func" c:identifier="gtk_tree_model_filter_set_modify_func" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter.</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="n_columns" transfer-ownership="none"> <doc xml:space="preserve">The number of columns in the filter model.</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="types" transfer-ownership="none"> <doc xml:space="preserve">The #GTypes of the columns.</doc> <array length="0" zero-terminated="0" c:type="GType*"> <type name="GType" c:type="GType"/> </array> </parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="3" destroy="4"> <doc xml:space="preserve">A #GtkTreeModelFilterModifyFunc</doc> <type name="TreeModelFilterModifyFunc" c:type="GtkTreeModelFilterModifyFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data to pass to the modify function, or %NULL.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier of @data, or %NULL.</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_visible_column" c:identifier="gtk_tree_model_filter_set_visible_column" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">A #gint which is the column containing the visible information</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_visible_func" c:identifier="gtk_tree_model_filter_set_visible_func" version="2.4"> <doc xml:space="preserve">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. |[<!-- language="C" --> static gboolean visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { // Visible if row is non-empty and first column is âHIâ gchar *str; gboolean visible = FALSE; gtk_tree_model_get (model, iter, 0, &str, -1); if (str && strcmp (str, "HI") == 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="filter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelFilter</doc> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">A #GtkTreeModelFilterVisibleFunc, the visible function</doc> <type name="TreeModelFilterVisibleFunc" c:type="GtkTreeModelFilterVisibleFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data to pass to the visible function, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier of @data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <property name="child-model" writable="1" construct-only="1" transfer-ownership="none"> <type name="TreeModel"/> </property> <property name="virtual-root" writable="1" construct-only="1" transfer-ownership="none"> <type name="TreePath"/> </property> <field name="parent"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="TreeModelFilterPrivate" c:type="GtkTreeModelFilterPrivate*"/> </field> </class> <record name="TreeModelFilterClass" c:type="GtkTreeModelFilterClass" glib:is-gtype-struct-for="TreeModelFilter"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="visible"> <callback name="visible"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </parameter> <parameter name="child_model" transfer-ownership="none"> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="modify"> <callback name="modify"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="self" transfer-ownership="none"> <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/> </parameter> <parameter name="child_model" transfer-ownership="none"> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="value" transfer-ownership="none"> <type name="GObject.Value" c:type="GValue*"/> </parameter> <parameter name="column" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="TreeModelFilterModifyFunc" c:type="GtkTreeModelFilterModifyFunc"> <doc xml:space="preserve">A function which calculates display values from raw values in the model. It must fill @value with the display value for the column @column in the row indicated by @iter. Since this function is called for each data access, itâs not a particularly efficient operation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModelFilter</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter pointing to the row whose display values are determined</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">A #GValue which is already initialized for with the correct type for the column @column.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column whose display value is determined</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">user data given to gtk_tree_model_filter_set_modify_func()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="TreeModelFilterPrivate" c:type="GtkTreeModelFilterPrivate" disguised="1"> </record> <callback name="TreeModelFilterVisibleFunc" c:type="GtkTreeModelFilterVisibleFunc"> <doc xml:space="preserve">A function which decides whether the row indicated by @iter is visible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether the row indicated by @iter is visible.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the child model of the #GtkTreeModelFilter</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter pointing to the row in @model whose visibility is determined</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data given to gtk_tree_model_filter_set_visible_func()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <bitfield name="TreeModelFlags" glib:type-name="GtkTreeModelFlags" glib:get-type="gtk_tree_model_flags_get_type" c:type="GtkTreeModelFlags"> <doc xml:space="preserve">These flags indicate various properties of a #GtkTreeModel. They are returned by gtk_tree_model_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.</doc> <member name="iters_persist" value="1" c:identifier="GTK_TREE_MODEL_ITERS_PERSIST" glib:nick="iters-persist"> <doc xml:space="preserve">iterators survive all signals emitted by the tree</doc> </member> <member name="list_only" value="2" c:identifier="GTK_TREE_MODEL_LIST_ONLY" glib:nick="list-only"> <doc xml:space="preserve">the model is a list only, and never has children</doc> </member> </bitfield> <callback name="TreeModelForeachFunc" c:type="GtkTreeModelForeachFunc"> <doc xml:space="preserve">Type of the callback passed to gtk_tree_model_foreach() to iterate over the rows in a tree model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop iterating, %FALSE to continue</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel being iterated</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the current #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the current #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> <doc xml:space="preserve">The user data passed to gtk_tree_model_foreach()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="TreeModelIface" c:type="GtkTreeModelIface" glib:is-gtype-struct-for="TreeModel"> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="row_changed"> <callback name="row_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the changed row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the changed row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="row_inserted"> <callback name="row_inserted"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the inserted row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the inserted row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="row_has_child_toggled"> <callback name="row_has_child_toggled"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the changed row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the changed row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="row_deleted"> <callback name="row_deleted"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the previous location of the deleted row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> <field name="rows_reordered"> <callback name="rows_reordered"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct pointing to the tree node whose children have been reordered</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreeIter-struct pointing to the node whose children have been reordered, or %NULL if the depth of @path is 0</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">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`</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_flags"> <callback name="get_flags"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the flags supported by this interface</doc> <type name="TreeModelFlags" c:type="GtkTreeModelFlags"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </callback> </field> <field name="get_n_columns"> <callback name="get_n_columns"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of columns</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </callback> </field> <field name="get_column_type"> <callback name="get_column_type"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the type of the column</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the column index</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="get_iter"> <callback name="get_iter"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter was set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the uninitialized #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> <field name="get_path"> <callback name="get_path"> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-created #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="get_value"> <callback name="get_value"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column to lookup the value at</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">an empty #GValue to set</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </callback> </field> <field name="iter_next"> <callback name="iter_next"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has been changed to the next node</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="iter_previous"> <callback name="iter_previous"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has been changed to the previous node</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="iter_children"> <callback name="iter_children"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter has been set to the first child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkTreeIter-struct to be set to the child</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="iter_has_child"> <callback name="iter_has_child"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter has children</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct to test for children</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="iter_n_children"> <callback name="iter_n_children"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of children of @iter</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="iter_nth_child"> <callback name="iter_nth_child"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @parent has an @n-th child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct to set to the nth child</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkTreeIter-struct to get the child from, or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="n" transfer-ownership="none"> <doc xml:space="preserve">the index of the desired child</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="iter_parent"> <callback name="iter_parent"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter is set to the parent of @child</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">the new #GtkTreeIter-struct to set to the parent</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="child" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="ref_node"> <callback name="ref_node"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> <field name="unref_node"> <callback name="unref_node"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeIter-struct</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </callback> </field> </record> <class name="TreeModelSort" c:symbol-prefix="tree_model_sort" c:type="GtkTreeModelSort" parent="GObject.Object" glib:type-name="GtkTreeModelSort" glib:get-type="gtk_tree_model_sort_get_type" glib:type-struct="TreeModelSortClass"> <doc xml:space="preserve">The #GtkTreeModelSort is a model which implements the #GtkTreeSortable interface. It does not hold any data itself, but rather is created with a child model and proxies its data. It has identical column types to this child model, and the changes in the child are propagated. The primary purpose of this model is to provide a way to sort a different model without modifying it. Note that the sort function used by #GtkTreeModelSort is not guaranteed to be stable. The use of this is best demonstrated through an example. In the following sample code we create two #GtkTreeView widgets each with a view of the same data. As the model is wrapped here by a #GtkTreeModelSort, the two #GtkTreeViews can each sort their view of the data without affecting the other. By contrast, if we simply put the same model in each widget, then sorting the first would sort the second. ## Using a #GtkTreeModelSort |[<!-- language="C" --> { GtkTreeView *tree_view1; GtkTreeView *tree_view2; GtkTreeModel *sort_model1; GtkTreeModel *sort_model2; GtkTreeModel *child_model; // get the child model child_model = get_my_model (); // Create the first tree sort_model1 = gtk_tree_model_sort_new_with_model (child_model); tree_view1 = gtk_tree_view_new_with_model (sort_model1); // Create the second tree sort_model2 = gtk_tree_model_sort_new_with_model (child_model); tree_view2 = gtk_tree_view_new_with_model (sort_model2); // Now we can sort the two models independently gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_model1), COLUMN_1, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_model2), COLUMN_1, GTK_SORT_DESCENDING); } ]| To demonstrate how to access the underlying child model from the sort model, the next example will be a callback for the #GtkTreeSelection #GtkTreeSelection::changed signal. In this callback, we get a string from COLUMN_1 of the model. We then modify the string, find the same selected row on the child model, and change the row there. ## Accessing the child model of in a selection changed callback |[<!-- language="C" --> void selection_changed (GtkTreeSelection *selection, gpointer data) { GtkTreeModel *sort_model = NULL; GtkTreeModel *child_model; GtkTreeIter sort_iter; GtkTreeIter child_iter; char *some_data = NULL; char *modified_data; // Get the current selected row and the model. if (! gtk_tree_selection_get_selected (selection, &sort_model, &sort_iter)) return; // Look up the current value on the selected row and get // a new value to change it to. gtk_tree_model_get (GTK_TREE_MODEL (sort_model), &sort_iter, COLUMN_1, &some_data, -1); modified_data = change_the_data (some_data); g_free (some_data); // Get an iterator on the child model, instead of the sort model. gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (sort_model), &child_iter, &sort_iter); // Get the child model and change the value of the row. In this // example, the child model is a GtkListStore. It could be any other // type of model, though. child_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (sort_model)); gtk_list_store_set (GTK_LIST_STORE (child_model), &child_iter, COLUMN_1, &modified_data, -1); g_free (modified_data); } ]|</doc> <implements name="TreeDragSource"/> <implements name="TreeModel"/> <implements name="TreeSortable"/> <method name="clear_cache" c:identifier="gtk_tree_model_sort_clear_cache"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model_sort" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelSort</doc> <type name="TreeModelSort" c:type="GtkTreeModelSort*"/> </instance-parameter> </parameters> </method> <method name="convert_child_iter_to_iter" c:identifier="gtk_tree_model_sort_convert_child_iter_to_iter"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @sort_iter was set, i.e. if @sort_iter is a valid iterator pointer to a visible row in the child model.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model_sort" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelSort</doc> <type name="TreeModelSort" c:type="GtkTreeModelSort*"/> </instance-parameter> <parameter name="sort_iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An uninitialized #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="child_iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter pointing to a row on the child model</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="convert_child_path_to_path" c:identifier="gtk_tree_model_sort_convert_child_path_to_path"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A newly allocated #GtkTreePath, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="tree_model_sort" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelSort</doc> <type name="TreeModelSort" c:type="GtkTreeModelSort*"/> </instance-parameter> <parameter name="child_path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath to convert</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="convert_iter_to_child_iter" c:identifier="gtk_tree_model_sort_convert_iter_to_child_iter"> <doc xml:space="preserve">Sets @child_iter to point to the row pointed to by @sorted_iter.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model_sort" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelSort</doc> <type name="TreeModelSort" c:type="GtkTreeModelSort*"/> </instance-parameter> <parameter name="child_iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An uninitialized #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="sorted_iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter pointing to a row on @tree_model_sort.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="convert_path_to_child_path" c:identifier="gtk_tree_model_sort_convert_path_to_child_path"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">A newly allocated #GtkTreePath, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="tree_model_sort" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelSort</doc> <type name="TreeModelSort" c:type="GtkTreeModelSort*"/> </instance-parameter> <parameter name="sorted_path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath to convert</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="get_model" c:identifier="gtk_tree_model_sort_get_model"> <doc xml:space="preserve">Returns the model the #GtkTreeModelSort is sorting.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the "child model" being sorted</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModelSort</doc> <type name="TreeModelSort" c:type="GtkTreeModelSort*"/> </instance-parameter> </parameters> </method> <method name="iter_is_valid" c:identifier="gtk_tree_model_sort_iter_is_valid" version="2.2"> <doc xml:space="preserve">> This function is slow. Only use it for debugging and/or testing > purposes. Checks if the given iter is a valid iter for this #GtkTreeModelSort.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the iter is valid, %FALSE if the iter is invalid.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_model_sort" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelSort.</doc> <type name="TreeModelSort" c:type="GtkTreeModelSort*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="reset_default_sort_func" c:identifier="gtk_tree_model_sort_reset_default_sort_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_model_sort" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModelSort</doc> <type name="TreeModelSort" c:type="GtkTreeModelSort*"/> </instance-parameter> </parameters> </method> <property name="model" writable="1" construct-only="1" transfer-ownership="none"> <type name="TreeModel"/> </property> <field name="parent"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="TreeModelSortPrivate" c:type="GtkTreeModelSortPrivate*"/> </field> </class> <record name="TreeModelSortClass" c:type="GtkTreeModelSortClass" glib:is-gtype-struct-for="TreeModelSort"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="TreeModelSortPrivate" c:type="GtkTreeModelSortPrivate" disguised="1"> </record> <record name="TreePath" c:type="GtkTreePath" glib:type-name="GtkTreePath" glib:get-type="gtk_tree_path_get_type" c:symbol-prefix="tree_path"> <constructor name="new" c:identifier="gtk_tree_path_new"> <doc xml:space="preserve">Creates a new #GtkTreePath-struct. This refers to a row.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkTreePath-struct.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> </constructor> <constructor name="new_first" c:identifier="gtk_tree_path_new_first"> <doc xml:space="preserve">Creates a new #GtkTreePath-struct. The string representation of this path is â0â.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A new #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> </constructor> <constructor name="new_from_indices" c:identifier="gtk_tree_path_new_from_indices" shadowed-by="new_from_indicesv" version="2.2" introspectable="0"> <doc xml:space="preserve">Creates a new path with @first_index and @varargs as indices.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <parameter name="first_index" transfer-ownership="none"> <doc xml:space="preserve">first integer</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">list of integers terminated by -1</doc> <varargs/> </parameter> </parameters> </constructor> <constructor name="new_from_indicesv" c:identifier="gtk_tree_path_new_from_indicesv" shadows="new_from_indices" version="3.12"> <doc xml:space="preserve">Creates a new path with the given @indices array of @length.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <parameter name="indices" transfer-ownership="none"> <doc xml:space="preserve">array of indices</doc> <array length="1" zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">length of @indices array</doc> <type name="gsize" c:type="gsize"/> </parameter> </parameters> </constructor> <constructor name="new_from_string" c:identifier="gtk_tree_path_new_from_string"> <doc xml:space="preserve">Creates a new #GtkTreePath-struct 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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly-created #GtkTreePath-struct, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The string representation of a path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </constructor> <method name="append_index" c:identifier="gtk_tree_path_append_index"> <doc xml:space="preserve">Appends a new index to a path. As a result, the depth of the path is increased.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the index</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="compare" c:identifier="gtk_tree_path_compare"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the relative positions of @a and @b</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="a" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="const GtkTreePath*"/> </instance-parameter> <parameter name="b" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct to compare with</doc> <type name="TreePath" c:type="const GtkTreePath*"/> </parameter> </parameters> </method> <method name="copy" c:identifier="gtk_tree_path_copy"> <doc xml:space="preserve">Creates a new #GtkTreePath-struct as a copy of @path.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="const GtkTreePath*"/> </instance-parameter> </parameters> </method> <method name="down" c:identifier="gtk_tree_path_down"> <doc xml:space="preserve">Moves @path to point to the first child of the current path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_tree_path_free"> <doc xml:space="preserve">Frees @path. If @path is %NULL, it simply returns.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> </parameters> </method> <method name="get_depth" c:identifier="gtk_tree_path_get_depth"> <doc xml:space="preserve">Returns the current depth of @path.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The depth of @path</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> </parameters> </method> <method name="get_indices" c:identifier="gtk_tree_path_get_indices" shadowed-by="get_indices_with_depth" introspectable="0"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current indices, or %NULL</doc> <type name="gint" c:type="gint*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> </parameters> </method> <method name="get_indices_with_depth" c:identifier="gtk_tree_path_get_indices_with_depth" shadows="get_indices" version="3.0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current indices, or %NULL</doc> <array length="0" zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> <parameter name="depth" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for number of elements returned in the integer array, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="is_ancestor" c:identifier="gtk_tree_path_is_ancestor"> <doc xml:space="preserve">Returns %TRUE if @descendant is a descendant of @path.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @descendant is contained inside @path</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> <parameter name="descendant" transfer-ownership="none"> <doc xml:space="preserve">another #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="is_descendant" c:identifier="gtk_tree_path_is_descendant"> <doc xml:space="preserve">Returns %TRUE if @path is a descendant of @ancestor.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @ancestor contains @path somewhere below it</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> <parameter name="ancestor" transfer-ownership="none"> <doc xml:space="preserve">another #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="next" c:identifier="gtk_tree_path_next"> <doc xml:space="preserve">Moves the @path to point to the next node at the current depth.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> </parameters> </method> <method name="prepend_index" c:identifier="gtk_tree_path_prepend_index"> <doc xml:space="preserve">Prepends a new index to a path. As a result, the depth of the path is increased.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> <parameter name="index_" transfer-ownership="none"> <doc xml:space="preserve">the index</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="prev" c:identifier="gtk_tree_path_prev"> <doc xml:space="preserve">Moves the @path to point to the previous node at the current depth, if it exists.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @path has a previous node, and the move was made</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> </parameters> </method> <method name="to_string" c:identifier="gtk_tree_path_to_string"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly-allocated string. Must be freed with g_free().</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> </parameters> </method> <method name="up" c:identifier="gtk_tree_path_up"> <doc xml:space="preserve">Moves the @path to point to its parent node, if it has a parent.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @path has a parent, and the move was made</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath-struct</doc> <type name="TreePath" c:type="GtkTreePath*"/> </instance-parameter> </parameters> </method> </record> <record name="TreeRowReference" c:type="GtkTreeRowReference" glib:type-name="GtkTreeRowReference" glib:get-type="gtk_tree_row_reference_get_type" c:symbol-prefix="tree_row_reference"> <doc xml:space="preserve">A GtkTreeRowReference tracks model changes so that it always refers to the same row (a #GtkTreePath refers to a position, not a fixed row). Create a new GtkTreeRowReference with gtk_tree_row_reference_new().</doc> <constructor name="new" c:identifier="gtk_tree_row_reference_new"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated #GtkTreeRowReference, or %NULL</doc> <type name="TreeRowReference" c:type="GtkTreeRowReference*"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreePath-struct to monitor</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </constructor> <constructor name="new_proxy" c:identifier="gtk_tree_row_reference_new_proxy"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated #GtkTreeRowReference, or %NULL</doc> <type name="TreeRowReference" c:type="GtkTreeRowReference*"/> </return-value> <parameters> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">a proxy #GObject</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a valid #GtkTreePath-struct to monitor</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </constructor> <method name="copy" c:identifier="gtk_tree_row_reference_copy" version="2.2"> <doc xml:space="preserve">Copies a #GtkTreeRowReference.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of @reference</doc> <type name="TreeRowReference" c:type="GtkTreeRowReference*"/> </return-value> <parameters> <instance-parameter name="reference" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeRowReference</doc> <type name="TreeRowReference" c:type="GtkTreeRowReference*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_tree_row_reference_free"> <doc xml:space="preserve">Freeâs @reference. @reference may be %NULL</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="reference" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreeRowReference, or %NULL</doc> <type name="TreeRowReference" c:type="GtkTreeRowReference*"/> </instance-parameter> </parameters> </method> <method name="get_model" c:identifier="gtk_tree_row_reference_get_model" version="2.8"> <doc xml:space="preserve">Returns the model that the row reference is monitoring.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the model</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="reference" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeRowReference</doc> <type name="TreeRowReference" c:type="GtkTreeRowReference*"/> </instance-parameter> </parameters> </method> <method name="get_path" c:identifier="gtk_tree_row_reference_get_path"> <doc xml:space="preserve">Returns a path that the row reference currently points to, or %NULL if the path pointed to is no longer valid.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a current path, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath*"/> </return-value> <parameters> <instance-parameter name="reference" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeRowReference</doc> <type name="TreeRowReference" c:type="GtkTreeRowReference*"/> </instance-parameter> </parameters> </method> <method name="valid" c:identifier="gtk_tree_row_reference_valid"> <doc xml:space="preserve">Returns %TRUE if the @reference is non-%NULL and refers to a current valid path.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @reference points to a valid path</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="reference" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreeRowReference, or %NULL</doc> <type name="TreeRowReference" c:type="GtkTreeRowReference*"/> </instance-parameter> </parameters> </method> <function name="deleted" c:identifier="gtk_tree_row_reference_deleted"> <doc xml:space="preserve">Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the #GtkTreeModel::row-deleted signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">a #GObject</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the path position that was deleted</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </function> <function name="inserted" c:identifier="gtk_tree_row_reference_inserted"> <doc xml:space="preserve">Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the #GtkTreeModel::row-inserted signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">a #GObject</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the row position that was inserted</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </function> <function name="reordered" c:identifier="gtk_tree_row_reference_reordered" introspectable="0"> <doc xml:space="preserve">Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the #GtkTreeModel::rows-reordered signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">a #GObject</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the parent path of the reordered signal</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the iter pointing to the parent of the reordered</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">the new order of rows</doc> <array zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> </parameters> </function> </record> <class name="TreeSelection" c:symbol-prefix="tree_selection" c:type="GtkTreeSelection" parent="GObject.Object" glib:type-name="GtkTreeSelection" glib:get-type="gtk_tree_selection_get_type" glib:type-struct="TreeSelectionClass"> <doc xml:space="preserve">The #GtkTreeSelection object is a helper object to manage the selection for a #GtkTreeView widget. The #GtkTreeSelection object is automatically created when a new #GtkTreeView widget is created, and cannot exist independently of this widget. The primary reason the #GtkTreeSelection objects exists is for cleanliness of code and API. That is, there is no conceptual reason all these functions could not be methods on the #GtkTreeView widget instead of a separate function. The #GtkTreeSelection object is gotten from a #GtkTreeView by calling gtk_tree_view_get_selection(). It can be manipulated to check the selection status of the tree, as well as select and deselect individual rows. Selection is done completely view side. As a result, multiple views of the same model can have completely different selections. Additionally, you cannot change the selection of a row on the model that is not currently displayed by the view without expanding its parents first. One of the important things to remember when monitoring the selection of a view is that the #GtkTreeSelection::changed signal is mostly a hint. That is, it may only emit one signal when a range of rows is selected. Additionally, it may on occasion emit a #GtkTreeSelection::changed signal when nothing has happened (mostly as a result of programmers calling select_row on an already selected row).</doc> <virtual-method name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> </parameters> </virtual-method> <method name="count_selected_rows" c:identifier="gtk_tree_selection_count_selected_rows" version="2.2"> <doc xml:space="preserve">Returns the number of rows that have been selected in @tree.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of rows selected.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> </parameters> </method> <method name="get_mode" c:identifier="gtk_tree_selection_get_mode"> <doc xml:space="preserve">Gets the selection mode for @selection. See gtk_tree_selection_set_mode().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current selection mode</doc> <type name="SelectionMode" c:type="GtkSelectionMode"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeSelection</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> </parameters> </method> <method name="get_select_function" c:identifier="gtk_tree_selection_get_select_function" version="2.14" introspectable="0"> <doc xml:space="preserve">Returns the current selection function.</doc> <return-value> <doc xml:space="preserve">The function.</doc> <type name="TreeSelectionFunc" c:type="GtkTreeSelectionFunc"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> </parameters> </method> <method name="get_selected" c:identifier="gtk_tree_selection_get_selected"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">TRUE, if there is a selected node.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="model" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer to set to the #GtkTreeModel, or NULL.</doc> <type name="TreeModel" c:type="GtkTreeModel**"/> </parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">The #GtkTreeIter, or NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="get_selected_rows" c:identifier="gtk_tree_selection_get_selected_rows" version="2.2"> <doc xml:space="preserve">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 #GtkTreeRowReferences. To do this, you can use gtk_tree_row_reference_new(). To free the return value, use: |[<!-- language="C" --> g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free); ]|</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A #GList containing a #GtkTreePath for each selected row.</doc> <type name="GLib.List" c:type="GList*"> <type name="TreePath"/> </type> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="model" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer to set to the #GtkTreeModel, or %NULL.</doc> <type name="TreeModel" c:type="GtkTreeModel**"/> </parameter> </parameters> </method> <method name="get_tree_view" c:identifier="gtk_tree_selection_get_tree_view"> <doc xml:space="preserve">Returns the tree view associated with @selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> </parameters> </method> <method name="get_user_data" c:identifier="gtk_tree_selection_get_user_data" introspectable="0"> <doc xml:space="preserve">Returns the user data for the selection function.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The user data.</doc> <type name="gpointer" c:type="gpointer"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> </parameters> </method> <method name="iter_is_selected" c:identifier="gtk_tree_selection_iter_is_selected"> <doc xml:space="preserve">Returns %TRUE if the row at @iter is currently selected.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter is selected</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="path_is_selected" c:identifier="gtk_tree_selection_path_is_selected"> <doc xml:space="preserve">Returns %TRUE if the row pointed to by @path is currently selected. If @path does not point to a valid location, %FALSE is returned</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @path is selected.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath to check selection on.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="select_all" c:identifier="gtk_tree_selection_select_all"> <doc xml:space="preserve">Selects all the nodes. @selection must be set to #GTK_SELECTION_MULTIPLE mode.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> </parameters> </method> <method name="select_iter" c:identifier="gtk_tree_selection_select_iter"> <doc xml:space="preserve">Selects the specified iterator.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeIter to be selected.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="select_path" c:identifier="gtk_tree_selection_select_path"> <doc xml:space="preserve">Select the row at @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be selected.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="select_range" c:identifier="gtk_tree_selection_select_range"> <doc xml:space="preserve">Selects a range of nodes, determined by @start_path and @end_path inclusive. @selection must be set to #GTK_SELECTION_MULTIPLE mode.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="start_path" transfer-ownership="none"> <doc xml:space="preserve">The initial node of the range.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="end_path" transfer-ownership="none"> <doc xml:space="preserve">The final node of the range.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="selected_foreach" c:identifier="gtk_tree_selection_selected_foreach"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">The function to call for each selected node.</doc> <type name="TreeSelectionForeachFunc" c:type="GtkTreeSelectionForeachFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to the function.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="set_mode" c:identifier="gtk_tree_selection_set_mode"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">The selection mode</doc> <type name="SelectionMode" c:type="GtkSelectionMode"/> </parameter> </parameters> </method> <method name="set_select_function" c:identifier="gtk_tree_selection_set_select_function"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">The selection function. May be %NULL</doc> <type name="TreeSelectionFunc" c:type="GtkTreeSelectionFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The selection functionâs data. May be %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">The destroy function for user data. May be %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="unselect_all" c:identifier="gtk_tree_selection_unselect_all"> <doc xml:space="preserve">Unselects all the nodes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> </parameters> </method> <method name="unselect_iter" c:identifier="gtk_tree_selection_unselect_iter"> <doc xml:space="preserve">Unselects the specified iterator.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeIter to be unselected.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="unselect_path" c:identifier="gtk_tree_selection_unselect_path"> <doc xml:space="preserve">Unselects the row at @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be unselected.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="unselect_range" c:identifier="gtk_tree_selection_unselect_range" version="2.2"> <doc xml:space="preserve">Unselects a range of nodes, determined by @start_path and @end_path inclusive.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </instance-parameter> <parameter name="start_path" transfer-ownership="none"> <doc xml:space="preserve">The initial node of the range.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="end_path" transfer-ownership="none"> <doc xml:space="preserve">The initial node of the range.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <property name="mode" version="3.2" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Selection mode. See gtk_tree_selection_set_mode() for more information on this property.</doc> <type name="SelectionMode"/> </property> <field name="parent" readable="0" private="1"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv" readable="0" private="1"> <type name="TreeSelectionPrivate" c:type="GtkTreeSelectionPrivate*"/> </field> <glib:signal name="changed" when="first"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="TreeSelectionClass" c:type="GtkTreeSelectionClass" glib:is-gtype-struct-for="TreeSelection"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="changed"> <callback name="changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="selection" transfer-ownership="none"> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="TreeSelectionForeachFunc" c:type="GtkTreeSelectionForeachFunc"> <doc xml:space="preserve">A function used by gtk_tree_selection_selected_foreach() to map all selected rows. It will be called on every selected row in the view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeModel being viewed</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath of a selected row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter pointing to a selected row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="TreeSelectionFunc" c:type="GtkTreeSelectionFunc"> <doc xml:space="preserve">A function used by gtk_tree_selection_set_select_function() to filter whether or not a row may be selected. It is called whenever a row's state might change. A return value of %TRUE indicates to @selection that it is okay to change the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the selection state of the row can be toggled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </parameter> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeModel being viewed</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath of the row in question</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="path_currently_selected" transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the path is currently selected</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="TreeSelectionPrivate" c:type="GtkTreeSelectionPrivate" disguised="1"> </record> <interface name="TreeSortable" c:symbol-prefix="tree_sortable" c:type="GtkTreeSortable" glib:type-name="GtkTreeSortable" glib:get-type="gtk_tree_sortable_get_type" glib:type-struct="TreeSortableIface"> <doc xml:space="preserve">#GtkTreeSortable is an interface to be implemented by tree models which support sorting. The #GtkTreeView uses the methods provided by this interface to sort the model.</doc> <prerequisite name="TreeModel"/> <virtual-method name="get_sort_column_id" invoker="get_sort_column_id"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sort column is not one of the special sort column ids.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> <parameter name="sort_column_id" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">The sort column id to be filled in</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="order" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">The #GtkSortType to be filled in</doc> <type name="SortType" c:type="GtkSortType*"/> </parameter> </parameters> </virtual-method> <virtual-method name="has_default_sort_func" invoker="has_default_sort_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the model has a default sort function</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="set_default_sort_func" invoker="set_default_sort_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">The comparison function</doc> <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1"> <doc xml:space="preserve">User data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier of @user_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_sort_column_id" invoker="set_sort_column_id"> <doc xml:space="preserve">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</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> <parameter name="sort_column_id" transfer-ownership="none"> <doc xml:space="preserve">the sort column id to set</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="order" transfer-ownership="none"> <doc xml:space="preserve">The sort order of the column</doc> <type name="SortType" c:type="GtkSortType"/> </parameter> </parameters> </virtual-method> <virtual-method name="set_sort_func" invoker="set_sort_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> <parameter name="sort_column_id" transfer-ownership="none"> <doc xml:space="preserve">the sort column id to set the function for</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">The comparison function</doc> <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">User data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier of @user_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </virtual-method> <virtual-method name="sort_column_changed" invoker="sort_column_changed"> <doc xml:space="preserve">Emits a #GtkTreeSortable::sort-column-changed signal on @sortable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> </parameters> </virtual-method> <method name="get_sort_column_id" c:identifier="gtk_tree_sortable_get_sort_column_id"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sort column is not one of the special sort column ids.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> <parameter name="sort_column_id" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">The sort column id to be filled in</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="order" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">The #GtkSortType to be filled in</doc> <type name="SortType" c:type="GtkSortType*"/> </parameter> </parameters> </method> <method name="has_default_sort_func" c:identifier="gtk_tree_sortable_has_default_sort_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the model has a default sort function</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> </parameters> </method> <method name="set_default_sort_func" c:identifier="gtk_tree_sortable_set_default_sort_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">The comparison function</doc> <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier of @user_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_sort_column_id" c:identifier="gtk_tree_sortable_set_sort_column_id"> <doc xml:space="preserve">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</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> <parameter name="sort_column_id" transfer-ownership="none"> <doc xml:space="preserve">the sort column id to set</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="order" transfer-ownership="none"> <doc xml:space="preserve">The sort order of the column</doc> <type name="SortType" c:type="GtkSortType"/> </parameter> </parameters> </method> <method name="set_sort_func" c:identifier="gtk_tree_sortable_set_sort_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> <parameter name="sort_column_id" transfer-ownership="none"> <doc xml:space="preserve">the sort column id to set the function for</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">The comparison function</doc> <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier of @user_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="sort_column_changed" c:identifier="gtk_tree_sortable_sort_column_changed"> <doc xml:space="preserve">Emits a #GtkTreeSortable::sort-column-changed signal on @sortable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </instance-parameter> </parameters> </method> <glib:signal name="sort-column-changed" when="last"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </interface> <record name="TreeSortableIface" c:type="GtkTreeSortableIface" glib:is-gtype-struct-for="TreeSortable"> <field name="g_iface" readable="0" private="1"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> <field name="sort_column_changed"> <callback name="sort_column_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </parameter> </parameters> </callback> </field> <field name="get_sort_column_id"> <callback name="get_sort_column_id"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the sort column is not one of the special sort column ids.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </parameter> <parameter name="sort_column_id" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">The sort column id to be filled in</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="order" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">The #GtkSortType to be filled in</doc> <type name="SortType" c:type="GtkSortType*"/> </parameter> </parameters> </callback> </field> <field name="set_sort_column_id"> <callback name="set_sort_column_id"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </parameter> <parameter name="sort_column_id" transfer-ownership="none"> <doc xml:space="preserve">the sort column id to set</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="order" transfer-ownership="none"> <doc xml:space="preserve">The sort order of the column</doc> <type name="SortType" c:type="GtkSortType"/> </parameter> </parameters> </callback> </field> <field name="set_sort_func"> <callback name="set_sort_func"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </parameter> <parameter name="sort_column_id" transfer-ownership="none"> <doc xml:space="preserve">the sort column id to set the function for</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="3" destroy="4"> <doc xml:space="preserve">The comparison function</doc> <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> <doc xml:space="preserve">User data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier of @user_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </callback> </field> <field name="set_default_sort_func"> <callback name="set_default_sort_func"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </parameter> <parameter name="sort_func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">The comparison function</doc> <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">User data to pass to @sort_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier of @user_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </callback> </field> <field name="has_default_sort_func"> <callback name="has_default_sort_func"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the model has a default sort function</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="sortable" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSortable</doc> <type name="TreeSortable" c:type="GtkTreeSortable*"/> </parameter> </parameters> </callback> </field> </record> <class name="TreeStore" c:symbol-prefix="tree_store" c:type="GtkTreeStore" parent="GObject.Object" glib:type-name="GtkTreeStore" glib:get-type="gtk_tree_store_get_type" glib:type-struct="TreeStoreClass"> <doc xml:space="preserve">The #GtkTreeStore object is a list model for use with a #GtkTreeView widget. It implements the #GtkTreeModel interface, and consequentially, can use all of the methods available there. It also implements the #GtkTreeSortable interface so it can be sorted by the view. Finally, it also implements the tree [drag and drop][gtk3-GtkTreeView-drag-and-drop] interfaces. # GtkTreeStore as GtkBuildable The GtkTreeStore implementation of the #GtkBuildable interface allows to specify the model columns with a <columns> element that may contain multiple <column> elements, each specifying one model column. The âtypeâ attribute specifies the data type for the column. An example of a UI Definition fragment for a tree store: |[ <object class="GtkTreeStore"> <columns> <column type="gchararray"/> <column type="gchararray"/> <column type="gint"/> </columns> </object> ]|</doc> <implements name="Buildable"/> <implements name="TreeDragDest"/> <implements name="TreeDragSource"/> <implements name="TreeModel"/> <implements name="TreeSortable"/> <constructor name="new" c:identifier="gtk_tree_store_new" shadowed-by="newv" introspectable="0"> <doc xml:space="preserve">Creates a new tree store as with @n_columns columns each of the types passed in. Note that only types derived from standard GObject fundamental types are supported. As an example, `gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_PIXBUF);` will create a new #GtkTreeStore with three columns, of type #gint, #gchararray, and #GdkPixbuf respectively.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </return-value> <parameters> <parameter name="n_columns" transfer-ownership="none"> <doc xml:space="preserve">number of columns in the tree store</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">all #GType types for the columns, from first to last</doc> <varargs/> </parameter> </parameters> </constructor> <constructor name="newv" c:identifier="gtk_tree_store_newv" shadows="new"> <doc xml:space="preserve">Non vararg creation function. Used primarily by language bindings.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </return-value> <parameters> <parameter name="n_columns" transfer-ownership="none"> <doc xml:space="preserve">number of columns in the tree store</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="types" transfer-ownership="none"> <doc xml:space="preserve">an array of #GType types for the columns, from first to last</doc> <array length="0" zero-terminated="0" c:type="GType*"> <type name="GType" c:type="GType"/> </array> </parameter> </parameters> </constructor> <method name="append" c:identifier="gtk_tree_store_append"> <doc xml:space="preserve">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. @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_tree_store_set() or gtk_tree_store_set_value().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the appended row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="clear" c:identifier="gtk_tree_store_clear"> <doc xml:space="preserve">Removes all rows from @tree_store</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> </parameters> </method> <method name="insert" c:identifier="gtk_tree_store_insert"> <doc xml:space="preserve">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. @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_tree_store_set() or gtk_tree_store_set_value().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the new row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position to insert the new row, or -1 for last</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="insert_after" c:identifier="gtk_tree_store_insert_after"> <doc xml:space="preserve">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. @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_tree_store_set() or gtk_tree_store_set_value().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the new row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="sibling" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="insert_before" c:identifier="gtk_tree_store_insert_before"> <doc xml:space="preserve">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. @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_tree_store_set() or gtk_tree_store_set_value().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the new row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="sibling" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="insert_with_values" c:identifier="gtk_tree_store_insert_with_values" shadowed-by="insert_with_valuesv" version="2.10" introspectable="0"> <doc xml:space="preserve">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 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 |[<!-- language="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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">An unset #GtkTreeIter to set the new row, or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position to insert the new row, or -1 to append after existing rows</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">pairs of column number and value, terminated with -1</doc> <varargs/> </parameter> </parameters> </method> <method name="insert_with_valuesv" c:identifier="gtk_tree_store_insert_with_valuesv" shadows="insert_with_values" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">An unset #GtkTreeIter to set the new row, or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">position to insert the new row, or -1 for last</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="columns" transfer-ownership="none"> <doc xml:space="preserve">an array of column numbers</doc> <array length="5" zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> <parameter name="values" transfer-ownership="none"> <doc xml:space="preserve">an array of GValues</doc> <array length="5" zero-terminated="0" c:type="GValue*"> <type name="GObject.Value" c:type="GValue"/> </array> </parameter> <parameter name="n_values" transfer-ownership="none"> <doc xml:space="preserve">the length of the @columns and @values arrays</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="is_ancestor" c:identifier="gtk_tree_store_is_ancestor"> <doc xml:space="preserve">Returns %TRUE if @iter is an ancestor of @descendant. That is, @iter is the parent (or grandparent or great-grandparent) of @descendant.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @iter is an ancestor of @descendant</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="descendant" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="iter_depth" c:identifier="gtk_tree_store_iter_depth"> <doc xml:space="preserve">Returns the depth of @iter. This will be 0 for anything on the root level, 1 for anything down a level, etc.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The depth of @iter</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="iter_is_valid" c:identifier="gtk_tree_store_iter_is_valid" version="2.2"> <doc xml:space="preserve">WARNING: This function is slow. Only use it for debugging and/or testing purposes. Checks if the given iter is a valid iter for this #GtkTreeStore.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the iter is valid, %FALSE if the iter is invalid.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore.</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="move_after" c:identifier="gtk_tree_store_move_after" version="2.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore.</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="move_before" c:identifier="gtk_tree_store_move_before" version="2.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore.</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="position" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreeIter or %NULL.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="prepend" c:identifier="gtk_tree_store_prepend"> <doc xml:space="preserve">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. @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_tree_store_set() or gtk_tree_store_set_value().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">An unset #GtkTreeIter to set to the prepended row</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A valid #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="remove" c:identifier="gtk_tree_store_remove"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @iter is still valid, %FALSE if not.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="reorder" c:identifier="gtk_tree_store_reorder" version="2.2" introspectable="0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreeIter, or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">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`.</doc> <array zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> </parameters> </method> <method name="set" c:identifier="gtk_tree_store_set" shadowed-by="set_valuesv" introspectable="0"> <doc xml:space="preserve">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_tree_store_set (store, iter, 0, "Foo", -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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter for the row being modified</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">pairs of column number and value, terminated with -1</doc> <varargs/> </parameter> </parameters> </method> <method name="set_column_types" c:identifier="gtk_tree_store_set_column_types"> <doc xml:space="preserve">This function is meant primarily for #GObjects that inherit from #GtkTreeStore, and should only be used when constructing a new #GtkTreeStore. It will not function after a row has been added, or a method on the #GtkTreeModel interface is called.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="n_columns" transfer-ownership="none"> <doc xml:space="preserve">Number of columns for the tree store</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="types" transfer-ownership="none"> <doc xml:space="preserve">An array of #GType types, one for each column</doc> <array length="0" zero-terminated="0" c:type="GType*"> <type name="GType" c:type="GType"/> </array> </parameter> </parameters> </method> <method name="set_valist" c:identifier="gtk_tree_store_set_valist" introspectable="0"> <doc xml:space="preserve">See gtk_tree_store_set(); this version takes a va_list for use by language bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter for the row being modified</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">va_list of column/value pairs</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="set_value" c:identifier="gtk_tree_store_set_value"> <doc xml:space="preserve">Sets the data in the cell specified by @iter and @column. The type of @value must be convertible to the type of the column.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter for the row being modified</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">column number to modify</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">new value for the cell</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="set_valuesv" c:identifier="gtk_tree_store_set_valuesv" shadows="set" version="2.12"> <doc xml:space="preserve">A variant of gtk_tree_store_set_valist() which takes the columns and values as two arrays, instead of varargs. This function is mainly intended for language bindings or in case the number of columns to change is not known until run-time.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">A valid #GtkTreeIter for the row being modified</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="columns" transfer-ownership="none"> <doc xml:space="preserve">an array of column numbers</doc> <array length="3" zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> <parameter name="values" transfer-ownership="none"> <doc xml:space="preserve">an array of GValues</doc> <array length="3" zero-terminated="0" c:type="GValue*"> <type name="GObject.Value" c:type="GValue"/> </array> </parameter> <parameter name="n_values" transfer-ownership="none"> <doc xml:space="preserve">the length of the @columns and @values arrays</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="swap" c:identifier="gtk_tree_store_swap" version="2.2"> <doc xml:space="preserve">Swaps @a and @b in the same level of @tree_store. Note that this function only works with unsorted stores.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_store" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeStore.</doc> <type name="TreeStore" c:type="GtkTreeStore*"/> </instance-parameter> <parameter name="a" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="b" transfer-ownership="none"> <doc xml:space="preserve">Another #GtkTreeIter.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <field name="parent"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="TreeStorePrivate" c:type="GtkTreeStorePrivate*"/> </field> </class> <record name="TreeStoreClass" c:type="GtkTreeStoreClass" glib:is-gtype-struct-for="TreeStore"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="TreeStorePrivate" c:type="GtkTreeStorePrivate" disguised="1"> </record> <class name="TreeView" c:symbol-prefix="tree_view" c:type="GtkTreeView" parent="Container" glib:type-name="GtkTreeView" glib:get-type="gtk_tree_view_get_type" glib:type-struct="TreeViewClass"> <doc xml:space="preserve">Widget that displays any object that implements the #GtkTreeModel interface. Please refer to the [tree widget conceptual overview][TreeWidget] for an overview of all the objects and data types related to the tree widget and how they work together. Several different coordinate systems are exposed in the GtkTreeView API. These are:  Coordinate systems in GtkTreeView API: - Widget coordinates: Coordinates relative to the widget (usually `widget->window`). - Bin window coordinates: Coordinates relative to the window that GtkTreeView renders to. - Tree coordinates: Coordinates relative to the entire scrollable area of GtkTreeView. These coordinates start at (0, 0) for row 0 of the tree. Several functions are available for converting between the different coordinate systems. The most common translations are between widget and bin window coordinates and between bin window and tree coordinates. For the former you can use gtk_tree_view_convert_widget_to_bin_window_coords() (and vice versa), for the latter gtk_tree_view_convert_bin_window_to_tree_coords() (and vice versa). # GtkTreeView as GtkBuildable The GtkTreeView implementation of the GtkBuildable interface accepts #GtkTreeViewColumn objects as <child> elements and exposes the internal #GtkTreeSelection in UI definitions. An example of a UI definition fragment with GtkTreeView: |[ <object class="GtkTreeView" id="treeview"> <property name="model">liststore1</property> <child> <object class="GtkTreeViewColumn" id="test-column"> <property name="title">Test</property> <child> <object class="GtkCellRendererText" id="test-renderer"/> <attributes> <attribute name="text">1</attribute> </attributes> </child> </object> </child> <child internal-child="selection"> <object class="GtkTreeSelection" id="selection"> <signal name="changed" handler="on_treeview_selection_changed"/> </object> </child> </object> ]| # CSS nodes |[<!-- language="plain" --> treeview.view âââ header â âââ <column header> â â â â°ââ <column header> â â°ââ [rubberband] ]| GtkTreeView has a main CSS node with name treeview and style class .view. It has a subnode with name header, which is the parent for all the column header widgets' CSS nodes. For rubberband selection, a subnode with name rubberband is used.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Scrollable"/> <constructor name="new" c:identifier="gtk_tree_view_new"> <doc xml:space="preserve">Creates a new #GtkTreeView widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkTreeView widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <constructor name="new_with_model" c:identifier="gtk_tree_view_new_with_model"> <doc xml:space="preserve">Creates a new #GtkTreeView widget with the model initialized to @model.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkTreeView widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the model.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </constructor> <virtual-method name="columns_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="cursor_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="expand_collapse_cursor_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="logical" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="expand" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="open_all" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_cursor"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_activated" invoker="row_activated"> <doc xml:space="preserve">Activates the cell determined by @path and @column.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be activated.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumn to be activated.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_collapsed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="row_expanded"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="select_all"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="select_cursor_parent"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="select_cursor_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="start_editing" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="start_interactive_search"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="test_collapse_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="test_expand_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> <virtual-method name="toggle_cursor_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="unselect_all"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </virtual-method> <method name="append_column" c:identifier="gtk_tree_view_append_column"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of columns in @tree_view after appending.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumn to add.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> </parameters> </method> <method name="collapse_all" c:identifier="gtk_tree_view_collapse_all"> <doc xml:space="preserve">Recursively collapses all visible, expanded nodes in @tree_view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="collapse_row" c:identifier="gtk_tree_view_collapse_row"> <doc xml:space="preserve">Collapses a row (hides its child rows, if they exist).</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row was collapsed.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">path to a row in the @tree_view</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="columns_autosize" c:identifier="gtk_tree_view_columns_autosize"> <doc xml:space="preserve">Resizes all columns to their optimal width. Only works after the treeview has been realized.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="convert_bin_window_to_tree_coords" c:identifier="gtk_tree_view_convert_bin_window_to_tree_coords" version="2.12"> <doc xml:space="preserve">Converts bin_window coordinates to coordinates for the tree (the full scrollable area of the tree).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="bx" transfer-ownership="none"> <doc xml:space="preserve">X coordinate relative to bin_window</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="by" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate relative to bin_window</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="tx" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for tree X coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="ty" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for tree Y coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="convert_bin_window_to_widget_coords" c:identifier="gtk_tree_view_convert_bin_window_to_widget_coords" version="2.12"> <doc xml:space="preserve">Converts bin_window coordinates (see gtk_tree_view_get_bin_window()) to widget relative coordinates.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="bx" transfer-ownership="none"> <doc xml:space="preserve">bin_window X coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="by" transfer-ownership="none"> <doc xml:space="preserve">bin_window Y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="wx" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for widget X coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="wy" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for widget Y coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="convert_tree_to_bin_window_coords" c:identifier="gtk_tree_view_convert_tree_to_bin_window_coords" version="2.12"> <doc xml:space="preserve">Converts tree coordinates (coordinates in full scrollable area of the tree) to bin_window coordinates.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="tx" transfer-ownership="none"> <doc xml:space="preserve">tree X coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="ty" transfer-ownership="none"> <doc xml:space="preserve">tree Y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="bx" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for X coordinate relative to bin_window</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="by" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for Y coordinate relative to bin_window</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="convert_tree_to_widget_coords" c:identifier="gtk_tree_view_convert_tree_to_widget_coords" version="2.12"> <doc xml:space="preserve">Converts tree coordinates (coordinates in full scrollable area of the tree) to widget coordinates.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="tx" transfer-ownership="none"> <doc xml:space="preserve">X coordinate relative to the tree</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="ty" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate relative to the tree</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="wx" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for widget X coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="wy" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for widget Y coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="convert_widget_to_bin_window_coords" c:identifier="gtk_tree_view_convert_widget_to_bin_window_coords" version="2.12"> <doc xml:space="preserve">Converts widget coordinates to coordinates for the bin_window (see gtk_tree_view_get_bin_window()).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="wx" transfer-ownership="none"> <doc xml:space="preserve">X coordinate relative to the widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="wy" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate relative to the widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="bx" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for bin_window X coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="by" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for bin_window Y coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="convert_widget_to_tree_coords" c:identifier="gtk_tree_view_convert_widget_to_tree_coords" version="2.12"> <doc xml:space="preserve">Converts widget coordinates to coordinates for the tree (the full scrollable area of the tree).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="wx" transfer-ownership="none"> <doc xml:space="preserve">X coordinate relative to the widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="wy" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate relative to the widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="tx" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for tree X coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="ty" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for tree Y coordinate</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="create_row_drag_icon" c:identifier="gtk_tree_view_create_row_drag_icon"> <doc xml:space="preserve">Creates a #cairo_surface_t representation of the row at @path. This image is used for a drag icon.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated surface of the drag icon.</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath in @tree_view</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="enable_model_drag_dest" c:identifier="gtk_tree_view_enable_model_drag_dest"> <doc xml:space="preserve">Turns @tree_view into a drop destination for automatic DND. Calling this method sets #GtkTreeView:reorderable to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">the table of targets that the drag will support</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the number of items in @targets</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">the bitmask of possible actions for a drag from this widget</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> </parameters> </method> <method name="enable_model_drag_source" c:identifier="gtk_tree_view_enable_model_drag_source"> <doc xml:space="preserve">Turns @tree_view into a drag source for automatic DND. Calling this method sets #GtkTreeView:reorderable to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="start_button_mask" transfer-ownership="none"> <doc xml:space="preserve">Mask of allowed buttons to start drag</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">the table of targets that the drag will support</doc> <array length="2" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the number of items in @targets</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">the bitmask of possible actions for a drag from this widget</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> </parameters> </method> <method name="expand_all" c:identifier="gtk_tree_view_expand_all"> <doc xml:space="preserve">Recursively expands all nodes in the @tree_view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="expand_row" c:identifier="gtk_tree_view_expand_row"> <doc xml:space="preserve">Opens the row so its children are visible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row existed and had children</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">path to a row</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="open_all" transfer-ownership="none"> <doc xml:space="preserve">whether to recursively expand, or just expand immediate children</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="expand_to_path" c:identifier="gtk_tree_view_expand_to_path" version="2.2"> <doc xml:space="preserve">Expands the row at @path. This will also expand all parent rows of @path as necessary.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">path to a row.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="get_activate_on_single_click" c:identifier="gtk_tree_view_get_activate_on_single_click" version="3.8"> <doc xml:space="preserve">Gets the setting set by gtk_tree_view_set_activate_on_single_click().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if row-activated will be emitted on a single click</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_background_area" c:identifier="gtk_tree_view_get_background_area"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreePath for the row, or %NULL to get only horizontal coordinates</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="column" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreeViewColumn for the column, or %NULL to get only vertical coordiantes</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">rectangle to fill with cell background rect</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_bin_window" c:identifier="gtk_tree_view_get_bin_window"> <doc xml:space="preserve">Returns the window that @tree_view renders to. This is used primarily to compare to `event->window` to confirm that the event on @tree_view is on the right window.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #GdkWindow, or %NULL when @tree_view hasnât been realized yet.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_cell_area" c:identifier="gtk_tree_view_get_cell_area"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreePath for the row, or %NULL to get only horizontal coordinates</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="column" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreeViewColumn for the column, or %NULL to get only vertical coordinates</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">rectangle to fill with cell rect</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_column" c:identifier="gtk_tree_view_get_column"> <doc xml:space="preserve">Gets the #GtkTreeViewColumn at the given position in the #tree_view.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The #GtkTreeViewColumn, or %NULL if the position is outside the range of columns.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="n" transfer-ownership="none"> <doc xml:space="preserve">The position of the column, counting from 0.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_columns" c:identifier="gtk_tree_view_get_columns"> <doc xml:space="preserve">Returns a #GList of all the #GtkTreeViewColumn s currently in @tree_view. The returned list must be freed with g_list_free ().</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">A list of #GtkTreeViewColumn s</doc> <type name="GLib.List" c:type="GList*"> <type name="TreeViewColumn"/> </type> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_cursor" c:identifier="gtk_tree_view_get_cursor"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer to be filled with the current cursor path, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="focus_column" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer to be filled with the current focus column, or %NULL</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn**"/> </parameter> </parameters> </method> <method name="get_dest_row_at_pos" c:identifier="gtk_tree_view_get_dest_row_at_pos"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether there is a row at the given position, %TRUE if this is indeed the case.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="drag_x" transfer-ownership="none"> <doc xml:space="preserve">the position to determine the destination row for</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="drag_y" transfer-ownership="none"> <doc xml:space="preserve">the position to determine the destination row for</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the path of the highlighted row, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the drop position, or %NULL</doc> <type name="TreeViewDropPosition" c:type="GtkTreeViewDropPosition*"/> </parameter> </parameters> </method> <method name="get_drag_dest_row" c:identifier="gtk_tree_view_get_drag_dest_row"> <doc xml:space="preserve">Gets information about the row that is highlighted for feedback.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the path of the highlighted row, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="pos" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for the drop position, or %NULL</doc> <type name="TreeViewDropPosition" c:type="GtkTreeViewDropPosition*"/> </parameter> </parameters> </method> <method name="get_enable_search" c:identifier="gtk_tree_view_get_enable_search"> <doc xml:space="preserve">Returns whether or not the tree allows to start interactive searching by typing in text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether or not to let the user search interactively</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_enable_tree_lines" c:identifier="gtk_tree_view_get_enable_tree_lines" version="2.10"> <doc xml:space="preserve">Returns whether or not tree lines are drawn in @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if tree lines are drawn in @tree_view, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_expander_column" c:identifier="gtk_tree_view_get_expander_column"> <doc xml:space="preserve">Returns the column that is the current expander column. This column has the expander arrow drawn next to it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The expander column.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_fixed_height_mode" c:identifier="gtk_tree_view_get_fixed_height_mode" version="2.6"> <doc xml:space="preserve">Returns whether fixed height mode is turned on for @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tree_view is in fixed height mode</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_grid_lines" c:identifier="gtk_tree_view_get_grid_lines" version="2.10"> <doc xml:space="preserve">Returns which grid lines are enabled in @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewGridLines value indicating which grid lines are enabled.</doc> <type name="TreeViewGridLines" c:type="GtkTreeViewGridLines"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_hadjustment" c:identifier="gtk_tree_view_get_hadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Gets the #GtkAdjustment currently being used for the horizontal aspect.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_hadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkAdjustment object, or %NULL if none is currently being used.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_headers_clickable" c:identifier="gtk_tree_view_get_headers_clickable" version="2.10"> <doc xml:space="preserve">Returns whether all header columns are clickable.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if all header columns are clickable, otherwise %FALSE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_headers_visible" c:identifier="gtk_tree_view_get_headers_visible"> <doc xml:space="preserve">Returns %TRUE if the headers on the @tree_view are visible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether the headers are visible or not.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_hover_expand" c:identifier="gtk_tree_view_get_hover_expand" version="2.6"> <doc xml:space="preserve">Returns whether hover expansion mode is turned on for @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tree_view is in hover expansion mode</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_hover_selection" c:identifier="gtk_tree_view_get_hover_selection" version="2.6"> <doc xml:space="preserve">Returns whether hover selection mode is turned on for @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tree_view is in hover selection mode</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_level_indentation" c:identifier="gtk_tree_view_get_level_indentation" version="2.12"> <doc xml:space="preserve">Returns the amount, in pixels, of extra indentation for child levels in @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the amount of extra indentation for child levels in @tree_view. A return value of 0 means that this feature is disabled.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_model" c:identifier="gtk_tree_view_get_model"> <doc xml:space="preserve">Returns the model the #GtkTreeView is based on. Returns %NULL if the model is unset.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #GtkTreeModel, or %NULL if none is currently being used.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_n_columns" c:identifier="gtk_tree_view_get_n_columns" version="3.4"> <doc xml:space="preserve">Queries the number of columns in the given @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of columns in the @tree_view</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_path_at_pos" c:identifier="gtk_tree_view_get_path_at_pos"> <doc xml:space="preserve">Finds the path at the point (@x, @y), relative to bin_window coordinates (please see gtk_tree_view_get_bin_window()). That is, @x and @y are relative to an events coordinates. @x and @y must come from an event on the @tree_view only where `event->window == gtk_tree_view_get_bin_window ()`. 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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a row exists at that coordinate.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">The x position to be identified (relative to bin_window).</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">The y position to be identified (relative to bin_window).</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer to a #GtkTreePath pointer to be filled in, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="column" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer to a #GtkTreeViewColumn pointer to be filled in, or %NULL</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn**"/> </parameter> <parameter name="cell_x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer where the X coordinate relative to the cell can be placed, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="cell_y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer where the Y coordinate relative to the cell can be placed, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_reorderable" c:identifier="gtk_tree_view_get_reorderable"> <doc xml:space="preserve">Retrieves whether the user can reorder the tree via drag-and-drop. See gtk_tree_view_set_reorderable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the tree can be reordered.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_row_separator_func" c:identifier="gtk_tree_view_get_row_separator_func" version="2.6" introspectable="0"> <doc xml:space="preserve">Returns the current row separator function.</doc> <return-value> <doc xml:space="preserve">the current row separator function.</doc> <type name="TreeViewRowSeparatorFunc" c:type="GtkTreeViewRowSeparatorFunc"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_rubber_banding" c:identifier="gtk_tree_view_get_rubber_banding" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if rubber banding in @tree_view is enabled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_rules_hint" c:identifier="gtk_tree_view_get_rules_hint" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Gets the setting set by gtk_tree_view_set_rules_hint().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the hint is set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_search_column" c:identifier="gtk_tree_view_get_search_column"> <doc xml:space="preserve">Gets the column searched on by the interactive search code.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the column the interactive search code searches in.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_search_entry" c:identifier="gtk_tree_view_get_search_entry" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the entry currently in use as search entry.</doc> <type name="Entry" c:type="GtkEntry*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_search_equal_func" c:identifier="gtk_tree_view_get_search_equal_func" introspectable="0"> <doc xml:space="preserve">Returns the compare function currently in use.</doc> <return-value> <doc xml:space="preserve">the currently used compare function for the search code.</doc> <type name="TreeViewSearchEqualFunc" c:type="GtkTreeViewSearchEqualFunc"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_search_position_func" c:identifier="gtk_tree_view_get_search_position_func" version="2.10" introspectable="0"> <doc xml:space="preserve">Returns the positioning function currently in use.</doc> <return-value> <doc xml:space="preserve">the currently used function for positioning the search dialog.</doc> <type name="TreeViewSearchPositionFunc" c:type="GtkTreeViewSearchPositionFunc"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_selection" c:identifier="gtk_tree_view_get_selection"> <doc xml:space="preserve">Gets the #GtkTreeSelection associated with @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeSelection object.</doc> <type name="TreeSelection" c:type="GtkTreeSelection*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_show_expanders" c:identifier="gtk_tree_view_get_show_expanders" version="2.12"> <doc xml:space="preserve">Returns whether or not expanders are drawn in @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if expanders are drawn in @tree_view, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip_column" c:identifier="gtk_tree_view_get_tooltip_column" version="2.12"> <doc xml:space="preserve">Returns the column of @tree_viewâs model which is being used for displaying tooltips on @tree_viewâs rows.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the index of the tooltip column that is currently being used, or -1 if this is disabled.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip_context" c:identifier="gtk_tree_view_get_tooltip_context" version="2.12"> <doc xml:space="preserve">This function is supposed to be used in a #GtkWidget::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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether or not the given tooltip context points to a row.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="x" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">the x coordinate (relative to widget coordinates)</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">the y coordinate (relative to widget coordinates)</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="keyboard_tip" transfer-ownership="none"> <doc xml:space="preserve">whether this is a keyboard tooltip or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="model" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">a pointer to receive a #GtkTreeModel or %NULL</doc> <type name="TreeModel" c:type="GtkTreeModel**"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a pointer to receive a #GtkTreePath or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">a pointer to receive a #GtkTreeIter or %NULL</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> </parameters> </method> <method name="get_vadjustment" c:identifier="gtk_tree_view_get_vadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Gets the #GtkAdjustment currently being used for the vertical aspect.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_vadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">A #GtkAdjustment object, or %NULL if none is currently being used.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="get_visible_range" c:identifier="gtk_tree_view_get_visible_range" version="2.8"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if valid paths were placed in @start_path and @end_path.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="start_path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for start of region, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="end_path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">Return location for end of region, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> </parameters> </method> <method name="get_visible_rect" c:identifier="gtk_tree_view_get_visible_rect"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="visible_rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">rectangle to fill</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="insert_column" c:identifier="gtk_tree_view_insert_column"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of columns in @tree_view after insertion.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumn to be inserted.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">The position to insert @column in.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="insert_column_with_attributes" c:identifier="gtk_tree_view_insert_column_with_attributes" introspectable="0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of columns in @tree_view after insertion.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">The position to insert the new column in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">The title to set the header to</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">A %NULL-terminated list of attributes</doc> <varargs/> </parameter> </parameters> </method> <method name="insert_column_with_data_func" c:identifier="gtk_tree_view_insert_column_with_data_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">number of columns in the tree view post-insert</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">Position to insert, -1 for append</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">column title</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">cell renderer for column</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="4" destroy="5"> <doc xml:space="preserve">function to set attributes of cell renderer</doc> <type name="TreeCellDataFunc" c:type="GtkTreeCellDataFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data for @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="dnotify" transfer-ownership="none" scope="async"> <doc xml:space="preserve">destroy notifier for @data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="is_blank_at_pos" c:identifier="gtk_tree_view_is_blank_at_pos" version="3.0"> <doc xml:space="preserve">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. That is, @x and @y must come from an event on @tree_view where `event->window == gtk_tree_view_get_bin_window ()`. 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the area at the given coordinates is blank, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">The x position to be identified (relative to bin_window)</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">The y position to be identified (relative to bin_window)</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer to a #GtkTreePath pointer to be filled in, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> <parameter name="column" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer to a #GtkTreeViewColumn pointer to be filled in, or %NULL</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn**"/> </parameter> <parameter name="cell_x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer where the X coordinate relative to the cell can be placed, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="cell_y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">A pointer where the Y coordinate relative to the cell can be placed, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="is_rubber_banding_active" c:identifier="gtk_tree_view_is_rubber_banding_active" version="2.12"> <doc xml:space="preserve">Returns whether a rubber banding operation is currently being done in @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a rubber banding operation is currently being done in @tree_view.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="map_expanded_rows" c:identifier="gtk_tree_view_map_expanded_rows"> <doc xml:space="preserve">Calls @func on all expanded rows.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" scope="call" closure="1"> <doc xml:space="preserve">A function to be called</doc> <type name="TreeViewMappingFunc" c:type="GtkTreeViewMappingFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data to be passed to the function.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </method> <method name="move_column_after" c:identifier="gtk_tree_view_move_column_after"> <doc xml:space="preserve">Moves @column to be after to @base_column. If @base_column is %NULL, then @column is placed in the first position.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumn to be moved.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="base_column" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The #GtkTreeViewColumn to be moved relative to, or %NULL.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> </parameters> </method> <method name="remove_column" c:identifier="gtk_tree_view_remove_column"> <doc xml:space="preserve">Removes @column from @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The number of columns in @tree_view after removing.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumn to remove.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> </parameters> </method> <method name="row_activated" c:identifier="gtk_tree_view_row_activated"> <doc xml:space="preserve">Activates the cell determined by @path and @column.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be activated.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumn to be activated.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> </parameters> </method> <method name="row_expanded" c:identifier="gtk_tree_view_row_expanded"> <doc xml:space="preserve">Returns %TRUE if the node pointed to by @path is expanded in @tree_view.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if #path is expanded.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath to test expansion state.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="scroll_to_cell" c:identifier="gtk_tree_view_scroll_to_cell"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The path of the row to move to, or %NULL.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="column" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The #GtkTreeViewColumn to move horizontally to, or %NULL.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="use_align" transfer-ownership="none"> <doc xml:space="preserve">whether to use alignment arguments, or %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="row_align" transfer-ownership="none"> <doc xml:space="preserve">The vertical alignment of the row specified by @path.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> <parameter name="col_align" transfer-ownership="none"> <doc xml:space="preserve">The horizontal alignment of the column specified by @column.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="scroll_to_point" c:identifier="gtk_tree_view_scroll_to_point"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="tree_x" transfer-ownership="none"> <doc xml:space="preserve">X coordinate of new top-left pixel of visible area, or -1</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="tree_y" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate of new top-left pixel of visible area, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_activate_on_single_click" c:identifier="gtk_tree_view_set_activate_on_single_click" version="3.8"> <doc xml:space="preserve">Cause the #GtkTreeView::row-activated signal to be emitted on a single click instead of a double click.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="single" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to emit row-activated on a single click</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_column_drag_function" c:identifier="gtk_tree_view_set_column_drag_function"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">A function to determine which columns are reorderable, or %NULL.</doc> <type name="TreeViewColumnDropFunc" c:type="GtkTreeViewColumnDropFunc"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data to be passed to @func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier for @user_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_cursor" c:identifier="gtk_tree_view_set_cursor"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="focus_column" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreeViewColumn, or %NULL</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="start_editing" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the specified cell should start being edited.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_cursor_on_cell" c:identifier="gtk_tree_view_set_cursor_on_cell" version="2.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="focus_column" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkTreeViewColumn, or %NULL</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="focus_cell" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A #GtkCellRenderer, or %NULL</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="start_editing" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the specified cell should start being edited.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_destroy_count_func" c:identifier="gtk_tree_view_set_destroy_count_func" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">This function should almost never be used. It is meant for private use by ATK for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.</doc> <doc-deprecated xml:space="preserve">Accessibility does not need the function anymore.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">Function to be called when a view row is destroyed, or %NULL</doc> <type name="TreeDestroyCountFunc" c:type="GtkTreeDestroyCountFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">User data to be passed to @func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier for @data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_drag_dest_row" c:identifier="gtk_tree_view_set_drag_dest_row"> <doc xml:space="preserve">Sets the row that is highlighted for feedback. If @path is %NULL, an existing highlight is removed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The path of the row to highlight, or %NULL</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">Specifies whether to drop before, after or into the row</doc> <type name="TreeViewDropPosition" c:type="GtkTreeViewDropPosition"/> </parameter> </parameters> </method> <method name="set_enable_search" c:identifier="gtk_tree_view_set_enable_search"> <doc xml:space="preserve">If @enable_search is set, then the user can type in text to search through the tree interactively (this is sometimes called "typeahead find"). Note that even if this is %FALSE, the user can still initiate a search using the âstart-interactive-searchâ key binding.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="enable_search" transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the user can search interactively</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_enable_tree_lines" c:identifier="gtk_tree_view_set_enable_tree_lines" version="2.10"> <doc xml:space="preserve">Sets whether to draw lines interconnecting the expanders in @tree_view. This does not have any visible effects for lists.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="enabled" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to enable tree line drawing, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_expander_column" c:identifier="gtk_tree_view_set_expander_column"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">%NULL, or the column to draw the expander arrow at.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> </parameters> </method> <method name="set_fixed_height_mode" c:identifier="gtk_tree_view_set_fixed_height_mode" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="enable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to enable fixed height mode</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_grid_lines" c:identifier="gtk_tree_view_set_grid_lines" version="2.10"> <doc xml:space="preserve">Sets which grid lines to draw in @tree_view.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="grid_lines" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewGridLines value indicating which grid lines to enable.</doc> <type name="TreeViewGridLines" c:type="GtkTreeViewGridLines"/> </parameter> </parameters> </method> <method name="set_hadjustment" c:identifier="gtk_tree_view_set_hadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the #GtkAdjustment for the current horizontal aspect.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_set_hadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The #GtkAdjustment to set, or %NULL</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_headers_clickable" c:identifier="gtk_tree_view_set_headers_clickable"> <doc xml:space="preserve">Allow the column title buttons to be clicked.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the columns are clickable.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_headers_visible" c:identifier="gtk_tree_view_set_headers_visible"> <doc xml:space="preserve">Sets the visibility state of the headers.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="headers_visible" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the headers are visible</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_hover_expand" c:identifier="gtk_tree_view_set_hover_expand" version="2.6"> <doc xml:space="preserve">Enables or disables the hover expansion mode of @tree_view. Hover expansion makes rows expand or collapse if the pointer moves over them.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to enable hover selection mode</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_hover_selection" c:identifier="gtk_tree_view_set_hover_selection" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="hover" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to enable hover selection mode</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_level_indentation" c:identifier="gtk_tree_view_set_level_indentation" version="2.12"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="indentation" transfer-ownership="none"> <doc xml:space="preserve">the amount, in pixels, of extra indentation in @tree_view.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_model" c:identifier="gtk_tree_view_set_model"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="model" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The model.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> </parameters> </method> <method name="set_reorderable" c:identifier="gtk_tree_view_set_reorderable"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView.</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="reorderable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the tree can be reordered.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_row_separator_func" c:identifier="gtk_tree_view_set_row_separator_func" version="2.6"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">a #GtkTreeViewRowSeparatorFunc</doc> <type name="TreeViewRowSeparatorFunc" c:type="GtkTreeViewRowSeparatorFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">destroy notifier for @data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_rubber_banding" c:identifier="gtk_tree_view_set_rubber_banding" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="enable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to enable rubber banding</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_rules_hint" c:identifier="gtk_tree_view_set_rules_hint" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets a hint for the theme to draw even/odd rows in the @tree_view with different colors, also known as "zebra striping". This function tells the GTK+ theme that the user interface for your application requires users to read across tree rows and associate cells with one another. Do not use it just because you prefer the appearance of the ruled tree; thatâs a question for the theme. Some themes will draw tree rows in alternating colors even when rules are turned off, and users who prefer that appearance all the time can choose those themes. You should call this function only as a semantic hint to the theme engine that your tree makes alternating colors useful from a functional standpoint (since it has lots of columns, generally).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the tree requires reading across rows</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_search_column" c:identifier="gtk_tree_view_set_search_column"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the column of the model to search in, or -1 to disable searching</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_search_entry" c:identifier="gtk_tree_view_set_search_entry" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="entry" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the entry the interactive search code of @tree_view should use or %NULL</doc> <type name="Entry" c:type="GtkEntry*"/> </parameter> </parameters> </method> <method name="set_search_equal_func" c:identifier="gtk_tree_view_set_search_equal_func"> <doc xml:space="preserve">Sets the compare function for the interactive search capabilities; note that somewhat like strcmp() returning 0 for equality #GtkTreeViewSearchEqualFunc returns %FALSE on matches.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="search_equal_func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">the compare function to use during the search</doc> <type name="TreeViewSearchEqualFunc" c:type="GtkTreeViewSearchEqualFunc"/> </parameter> <parameter name="search_user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @search_equal_func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="search_destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier for @search_user_data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_search_position_func" c:identifier="gtk_tree_view_set_search_position_func" version="2.10"> <doc xml:space="preserve">Sets the function to use when positioning the search dialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">the function to use to position the search dialog, or %NULL to use the default search position function</doc> <type name="TreeViewSearchPositionFunc" c:type="GtkTreeViewSearchPositionFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @func, or %NULL</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async"> <doc xml:space="preserve">Destroy notifier for @data, or %NULL</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_show_expanders" c:identifier="gtk_tree_view_set_show_expanders" version="2.12"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="enabled" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to enable expander drawing, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_tooltip_cell" c:identifier="gtk_tree_view_set_tooltip_cell" version="2.12"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </parameter> <parameter name="path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreePath or %NULL</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="column" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreeViewColumn or %NULL</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="cell" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkCellRenderer or %NULL</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="set_tooltip_column" c:identifier="gtk_tree_view_set_tooltip_column" version="2.12"> <doc xml:space="preserve">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 &, <, etc have to be escaped in the text.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">an integer, which is a valid column number for @tree_viewâs model</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_tooltip_row" c:identifier="gtk_tree_view_set_tooltip_row" version="2.12"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip" c:type="GtkTooltip*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </method> <method name="set_vadjustment" c:identifier="gtk_tree_view_set_vadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the #GtkAdjustment for the current vertical aspect.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_set_vadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The #GtkAdjustment to set, or %NULL</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="unset_rows_drag_dest" c:identifier="gtk_tree_view_unset_rows_drag_dest"> <doc xml:space="preserve">Undoes the effect of gtk_tree_view_enable_model_drag_dest(). Calling this method sets #GtkTreeView:reorderable to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <method name="unset_rows_drag_source" c:identifier="gtk_tree_view_unset_rows_drag_source"> <doc xml:space="preserve">Undoes the effect of gtk_tree_view_enable_model_drag_source(). Calling this method sets #GtkTreeView:reorderable to %FALSE.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </instance-parameter> </parameters> </method> <property name="activate-on-single-click" version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The activate-on-single-click property specifies whether the "row-activated" signal will be emitted after a single click.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="enable-grid-lines" writable="1" transfer-ownership="none"> <type name="TreeViewGridLines"/> </property> <property name="enable-search" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="enable-tree-lines" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="expander-column" writable="1" transfer-ownership="none"> <type name="TreeViewColumn"/> </property> <property name="fixed-height-mode" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="headers-clickable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="headers-visible" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="hover-expand" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="hover-selection" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="level-indentation" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Extra indentation for each level.</doc> <type name="gint" c:type="gint"/> </property> <property name="model" writable="1" transfer-ownership="none"> <type name="TreeModel"/> </property> <property name="reorderable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="rubber-banding" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="rules-hint" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets a hint to the theme to draw rows in alternating colors.</doc> <doc-deprecated xml:space="preserve">The theme is responsible for drawing rows using zebra striping</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="search-column" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="show-expanders" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the view has expanders.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="tooltip-column" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="ubuntu-almost-fixed-height-mode" readable="0" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="Container" c:type="GtkContainer"/> </field> <field name="priv" readable="0" private="1"> <type name="TreeViewPrivate" c:type="GtkTreeViewPrivate*"/> </field> <glib:signal name="columns-changed" when="last"> <doc xml:space="preserve">The number of columns of the treeview has changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="cursor-changed" when="last"> <doc xml:space="preserve">The position of the cursor (focused cell) has changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="expand-collapse-cursor-row" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="p0" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="p1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-cursor" when="last" action="1"> <doc xml:space="preserve">The #GtkTreeView::move-cursor signal is a [keybinding signal][GtkBindingSignal] 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @step is supported, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="MovementStep"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the direction to move: +1 to move forwards; -1 to move backwards. The resulting movement is undefined for all other values.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </glib:signal> <glib:signal name="row-activated" when="last" action="1"> <doc xml:space="preserve">The "row-activated" signal is emitted when the method gtk_tree_view_row_activated() is called, when the user double clicks a treeview row with the "activate-on-single-click" property set to %FALSE, or when the user single clicks a row when the "activate-on-single-click" property set to %TRUE. It is also emitted when a non-editable row is selected and one of the keys: Space, Shift+Space, Return or Enter is pressed. For selection handling refer to the [tree widget conceptual overview][TreeWidget] as well as #GtkTreeSelection.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreePath for the activated row</doc> <type name="TreePath"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeViewColumn in which the activation occurred</doc> <type name="TreeViewColumn"/> </parameter> </parameters> </glib:signal> <glib:signal name="row-collapsed" when="last"> <doc xml:space="preserve">The given row has been collapsed (child nodes are hidden).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the tree iter of the collapsed row</doc> <type name="TreeIter"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a tree path that points to the row</doc> <type name="TreePath"/> </parameter> </parameters> </glib:signal> <glib:signal name="row-expanded" when="last"> <doc xml:space="preserve">The given row has been expanded (child nodes are shown).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the tree iter of the expanded row</doc> <type name="TreeIter"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a tree path that points to the row</doc> <type name="TreePath"/> </parameter> </parameters> </glib:signal> <glib:signal name="select-all" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="select-cursor-parent" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="select-cursor-row" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="start-interactive-search" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="test-collapse-row" when="last"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE to allow collapsing, %TRUE to reject</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the tree iter of the row to collapse</doc> <type name="TreeIter"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a tree path that points to the row</doc> <type name="TreePath"/> </parameter> </parameters> </glib:signal> <glib:signal name="test-expand-row" when="last"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE to allow expansion, %TRUE to reject</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the tree iter of the row to expand</doc> <type name="TreeIter"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a tree path that points to the row</doc> <type name="TreePath"/> </parameter> </parameters> </glib:signal> <glib:signal name="toggle-cursor-row" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="unselect-all" when="last" action="1"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> </class> <class name="TreeViewAccessible" c:symbol-prefix="tree_view_accessible" c:type="GtkTreeViewAccessible" parent="ContainerAccessible" glib:type-name="GtkTreeViewAccessible" glib:get-type="gtk_tree_view_accessible_get_type" glib:type-struct="TreeViewAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Selection"/> <implements name="Atk.Table"/> <implements name="CellAccessibleParent"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="TreeViewAccessiblePrivate" c:type="GtkTreeViewAccessiblePrivate*"/> </field> </class> <record name="TreeViewAccessibleClass" c:type="GtkTreeViewAccessibleClass" glib:is-gtype-struct-for="TreeViewAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="TreeViewAccessiblePrivate" c:type="GtkTreeViewAccessiblePrivate" disguised="1"> </record> <record name="TreeViewClass" c:type="GtkTreeViewClass" glib:is-gtype-struct-for="TreeView"> <field name="parent_class"> <type name="ContainerClass" c:type="GtkContainerClass"/> </field> <field name="row_activated"> <callback name="row_activated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreePath to be activated.</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumn to be activated.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> </parameters> </callback> </field> <field name="test_expand_row"> <callback name="test_expand_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> <field name="test_collapse_row"> <callback name="test_collapse_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> <field name="row_expanded"> <callback name="row_expanded"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> <field name="row_collapsed"> <callback name="row_collapsed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </callback> </field> <field name="columns_changed"> <callback name="columns_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> </parameters> </callback> </field> <field name="cursor_changed"> <callback name="cursor_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> </parameters> </callback> </field> <field name="move_cursor"> <callback name="move_cursor"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="step" transfer-ownership="none"> <type name="MovementStep" c:type="GtkMovementStep"/> </parameter> <parameter name="count" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> </parameters> </callback> </field> <field name="select_all"> <callback name="select_all"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> </parameters> </callback> </field> <field name="unselect_all"> <callback name="unselect_all"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> </parameters> </callback> </field> <field name="select_cursor_row"> <callback name="select_cursor_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="start_editing" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="toggle_cursor_row"> <callback name="toggle_cursor_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> </parameters> </callback> </field> <field name="expand_collapse_cursor_row"> <callback name="expand_collapse_cursor_row"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="logical" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="expand" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="open_all" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="select_cursor_parent"> <callback name="select_cursor_parent"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> </parameters> </callback> </field> <field name="start_interactive_search"> <callback name="start_interactive_search"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved5" introspectable="0"> <callback name="_gtk_reserved5"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved8" introspectable="0"> <callback name="_gtk_reserved8"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="TreeViewColumn" c:symbol-prefix="tree_view_column" c:type="GtkTreeViewColumn" parent="GObject.InitiallyUnowned" glib:type-name="GtkTreeViewColumn" glib:get-type="gtk_tree_view_column_get_type" glib:type-struct="TreeViewColumnClass"> <doc xml:space="preserve">The GtkTreeViewColumn object represents a visible column in a #GtkTreeView widget. It allows to set properties of the column header, and functions as a holding pen for the cell renderers which determine how the data in the column is displayed. Please refer to the [tree widget conceptual overview][TreeWidget] for an overview of all the objects and data types related to the tree widget and how they work together.</doc> <implements name="Buildable"/> <implements name="CellLayout"/> <constructor name="new" c:identifier="gtk_tree_view_column_new"> <doc xml:space="preserve">Creates a new #GtkTreeViewColumn.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </return-value> </constructor> <constructor name="new_with_area" c:identifier="gtk_tree_view_column_new_with_area" version="3.0"> <doc xml:space="preserve">Creates a new #GtkTreeViewColumn using @area to render its cells.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </return-value> <parameters> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellArea that the newly created column should use to layout cells.</doc> <type name="CellArea" c:type="GtkCellArea*"/> </parameter> </parameters> </constructor> <constructor name="new_with_attributes" c:identifier="gtk_tree_view_column_new_with_attributes" introspectable="0"> <doc xml:space="preserve">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: |[<!-- language="C" --> enum { TEXT_COLUMN, COLOR_COLUMN, N_COLUMNS }; // ... { GtkTreeViewColumn *column; GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Title", renderer, "text", TEXT_COLUMN, "foreground", COLOR_COLUMN, NULL); } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">A newly created #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </return-value> <parameters> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">The title to set the header to</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">A %NULL-terminated list of attributes</doc> <varargs/> </parameter> </parameters> </constructor> <virtual-method name="clicked" invoker="clicked"> <doc xml:space="preserve">Emits the âclickedâ signal on the column. This function will only work if @tree_column is clickable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </virtual-method> <method name="add_attribute" c:identifier="gtk_tree_view_column_add_attribute"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell_renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer to set attributes on</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="attribute" transfer-ownership="none"> <doc xml:space="preserve">An attribute on the renderer</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The column position on the model to get the attribute from.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="cell_get_position" c:identifier="gtk_tree_view_column_cell_get_position"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell belongs to @tree_column.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell_renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="x_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the horizontal position of @cell within @tree_column, may be %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the width of @cell, may be %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="cell_get_size" c:identifier="gtk_tree_view_column_cell_get_size"> <doc xml:space="preserve">Obtains the width and height needed to render the column. This is used primarily by the #GtkTreeView.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell_area" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The area a cell in the column will be allocated, or %NULL</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="x_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return x offset of a cell relative to @cell_area, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y_offset" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return y offset of a cell relative to @cell_area, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return width needed to render a cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to return height needed to render a cell, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="cell_is_visible" c:identifier="gtk_tree_view_column_cell_is_visible"> <doc xml:space="preserve">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()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if any of the cells packed into the @tree_column are currently visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="cell_set_cell_data" c:identifier="gtk_tree_view_column_cell_set_cell_data"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeModel to to get the cell renderers attributes from.</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeIter to to get the cell rendererâs attributes from.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="is_expander" transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the row has children</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="is_expanded" transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the row has visible children</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="clear" c:identifier="gtk_tree_view_column_clear"> <doc xml:space="preserve">Unsets all the mappings on all renderers on the @tree_column.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="clear_attributes" c:identifier="gtk_tree_view_column_clear_attributes"> <doc xml:space="preserve">Clears all existing attributes previously set with gtk_tree_view_column_set_attributes().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell_renderer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkCellRenderer to clear the attribute mapping on.</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="clicked" c:identifier="gtk_tree_view_column_clicked"> <doc xml:space="preserve">Emits the âclickedâ signal on the column. This function will only work if @tree_column is clickable.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="focus_cell" c:identifier="gtk_tree_view_column_focus_cell" version="2.2"> <doc xml:space="preserve">Sets the current keyboard focus to be at @cell, if the column contains 2 or more editable and activatable cells.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> </parameters> </method> <method name="get_alignment" c:identifier="gtk_tree_view_column_get_alignment"> <doc xml:space="preserve">Returns the current x alignment of @tree_column. This value can range between 0.0 and 1.0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current alignent of @tree_column.</doc> <type name="gfloat" c:type="gfloat"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_button" c:identifier="gtk_tree_view_column_get_button" version="3.0"> <doc xml:space="preserve">Returns the button used in the treeview column header</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The button for the column header.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_clickable" c:identifier="gtk_tree_view_column_get_clickable"> <doc xml:space="preserve">Returns %TRUE if the user can click on the header for the column.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if user can click the column header.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_expand" c:identifier="gtk_tree_view_column_get_expand" version="2.4"> <doc xml:space="preserve">Returns %TRUE if the column expands to fill available space.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the column expands to fill available space.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_fixed_width" c:identifier="gtk_tree_view_column_get_fixed_width"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The fixed width of the column.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_max_width" c:identifier="gtk_tree_view_column_get_max_width"> <doc xml:space="preserve">Returns the maximum width in pixels of the @tree_column, or -1 if no maximum width is set.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The maximum width of the @tree_column.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_min_width" c:identifier="gtk_tree_view_column_get_min_width"> <doc xml:space="preserve">Returns the minimum width in pixels of the @tree_column, or -1 if no minimum width is set.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The minimum width of the @tree_column.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_reorderable" c:identifier="gtk_tree_view_column_get_reorderable"> <doc xml:space="preserve">Returns %TRUE if the @tree_column can be reordered by the user.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the @tree_column can be reordered by the user.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_resizable" c:identifier="gtk_tree_view_column_get_resizable"> <doc xml:space="preserve">Returns %TRUE if the @tree_column can be resized by the end user.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the @tree_column can be resized.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_sizing" c:identifier="gtk_tree_view_column_get_sizing"> <doc xml:space="preserve">Returns the current type of @tree_column.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The type of @tree_column.</doc> <type name="TreeViewColumnSizing" c:type="GtkTreeViewColumnSizing"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_sort_column_id" c:identifier="gtk_tree_view_column_get_sort_column_id"> <doc xml:space="preserve">Gets the logical @sort_column_id that the model sorts on when this column is selected for sorting. See gtk_tree_view_column_set_sort_column_id().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current @sort_column_id for this column, or -1 if this column canât be used for sorting.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_sort_indicator" c:identifier="gtk_tree_view_column_get_sort_indicator"> <doc xml:space="preserve">Gets the value set by gtk_tree_view_column_set_sort_indicator().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the sort indicator arrow is displayed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_sort_order" c:identifier="gtk_tree_view_column_get_sort_order"> <doc xml:space="preserve">Gets the value set by gtk_tree_view_column_set_sort_order().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the sort order the sort indicator is indicating</doc> <type name="SortType" c:type="GtkSortType"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_spacing" c:identifier="gtk_tree_view_column_get_spacing"> <doc xml:space="preserve">Returns the spacing of @tree_column.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the spacing of @tree_column.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_tree_view_column_get_title"> <doc xml:space="preserve">Returns the title of the widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the title of the column. This string should not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_tree_view" c:identifier="gtk_tree_view_column_get_tree_view" version="2.12"> <doc xml:space="preserve">Returns the #GtkTreeView wherein @tree_column has been inserted. If @column is currently not inserted in any tree view, %NULL is returned.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The tree view wherein @column has been inserted if any, %NULL otherwise.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_visible" c:identifier="gtk_tree_view_column_get_visible"> <doc xml:space="preserve">Returns %TRUE if @tree_column is visible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the column is visible or not. If it is visible, then the tree will show the column.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_widget" c:identifier="gtk_tree_view_column_get_widget"> <doc xml:space="preserve">Returns the #GtkWidget in the button on the column header. If a custom widget has not been set then %NULL is returned.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The #GtkWidget in the column header, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_width" c:identifier="gtk_tree_view_column_get_width"> <doc xml:space="preserve">Returns the current size of @tree_column in pixels.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current width of @tree_column.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="get_x_offset" c:identifier="gtk_tree_view_column_get_x_offset" version="3.2"> <doc xml:space="preserve">Returns the current X offset of @tree_column in pixels.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The current X offset of @tree_column.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="pack_end" c:identifier="gtk_tree_view_column_pack_end"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellRenderer.</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell is to be given extra space allocated to @tree_column.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="pack_start" c:identifier="gtk_tree_view_column_pack_start"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell" transfer-ownership="none"> <doc xml:space="preserve">The #GtkCellRenderer.</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @cell is to be given extra space allocated to @tree_column.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="queue_resize" c:identifier="gtk_tree_view_column_queue_resize" version="2.8"> <doc xml:space="preserve">Flags the column, and the cell renderers added to this column, to have their sizes renegotiated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> </parameters> </method> <method name="set_alignment" c:identifier="gtk_tree_view_column_set_alignment"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="xalign" transfer-ownership="none"> <doc xml:space="preserve">The alignment, which is between [0.0 and 1.0] inclusive.</doc> <type name="gfloat" c:type="gfloat"/> </parameter> </parameters> </method> <method name="set_attributes" c:identifier="gtk_tree_view_column_set_attributes" introspectable="0"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell_renderer" transfer-ownership="none"> <doc xml:space="preserve">the #GtkCellRenderer weâre setting the attributes of</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">A %NULL-terminated list of attributes</doc> <varargs/> </parameter> </parameters> </method> <method name="set_cell_data_func" c:identifier="gtk_tree_view_column_set_cell_data_func"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="cell_renderer" transfer-ownership="none"> <doc xml:space="preserve">A #GtkCellRenderer</doc> <type name="CellRenderer" c:type="GtkCellRenderer*"/> </parameter> <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">The #GtkTreeCellDataFunc to use.</doc> <type name="TreeCellDataFunc" c:type="GtkTreeCellDataFunc"/> </parameter> <parameter name="func_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The user data for @func.</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">The destroy notification for @func_data</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_clickable" c:identifier="gtk_tree_view_column_set_clickable"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="clickable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the header is active.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_expand" c:identifier="gtk_tree_view_column_set_expand" version="2.4"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the column should expand to fill available space.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_fixed_width" c:identifier="gtk_tree_view_column_set_fixed_width"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="fixed_width" transfer-ownership="none"> <doc xml:space="preserve">The new fixed width, in pixels, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_max_width" c:identifier="gtk_tree_view_column_set_max_width"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="max_width" transfer-ownership="none"> <doc xml:space="preserve">The maximum width of the column in pixels, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_min_width" c:identifier="gtk_tree_view_column_set_min_width"> <doc xml:space="preserve">Sets the minimum width of the @tree_column. If @min_width is -1, then the minimum width is unset.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="min_width" transfer-ownership="none"> <doc xml:space="preserve">The minimum width of the column in pixels, or -1.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_reorderable" c:identifier="gtk_tree_view_column_set_reorderable"> <doc xml:space="preserve">If @reorderable is %TRUE, then the column can be reordered by the end user dragging the header.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="reorderable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the column can be reordered.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_resizable" c:identifier="gtk_tree_view_column_set_resizable"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="resizable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if the column can be resized</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_sizing" c:identifier="gtk_tree_view_column_set_sizing"> <doc xml:space="preserve">Sets the growth behavior of @tree_column to @type.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumnSizing.</doc> <type name="TreeViewColumnSizing" c:type="GtkTreeViewColumnSizing"/> </parameter> </parameters> </method> <method name="set_sort_column_id" c:identifier="gtk_tree_view_column_set_sort_column_id"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="sort_column_id" transfer-ownership="none"> <doc xml:space="preserve">The @sort_column_id of the model to sort on.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_sort_indicator" c:identifier="gtk_tree_view_column_set_sort_indicator"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to display an indicator that the column is sorted</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_sort_order" c:identifier="gtk_tree_view_column_set_sort_order"> <doc xml:space="preserve">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().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="order" transfer-ownership="none"> <doc xml:space="preserve">sort order that the sort indicator should indicate</doc> <type name="SortType" c:type="GtkSortType"/> </parameter> </parameters> </method> <method name="set_spacing" c:identifier="gtk_tree_view_column_set_spacing"> <doc xml:space="preserve">Sets the spacing field of @tree_column, which is the number of pixels to place between cell renderers packed into it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">distance between cell renderers in pixels.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_tree_view_column_set_title"> <doc xml:space="preserve">Sets the title of the @tree_column. If a custom widget has been set, then this value is ignored.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">The title of the @tree_column.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_visible" c:identifier="gtk_tree_view_column_set_visible"> <doc xml:space="preserve">Sets the visibility of @tree_column.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the @tree_column is visible.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_widget" c:identifier="gtk_tree_view_column_set_widget"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn.</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">A child #GtkWidget, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <property name="alignment" writable="1" transfer-ownership="none"> <type name="gfloat" c:type="gfloat"/> </property> <property name="cell-area" version="3.0" writable="1" construct-only="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="CellArea"/> </property> <property name="clickable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="expand" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="fixed-width" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="max-width" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="min-width" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="reorderable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="resizable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="sizing" writable="1" transfer-ownership="none"> <type name="TreeViewColumnSizing"/> </property> <property name="sort-column-id" version="2.18" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gint" c:type="gint"/> </property> <property name="sort-indicator" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="sort-order" writable="1" transfer-ownership="none"> <type name="SortType"/> </property> <property name="spacing" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="title" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="visible" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="widget" writable="1" transfer-ownership="none"> <type name="Widget"/> </property> <property name="width" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="x-offset" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <field name="parent_instance"> <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> </field> <field name="priv"> <type name="TreeViewColumnPrivate" c:type="GtkTreeViewColumnPrivate*"/> </field> <glib:signal name="clicked" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> </class> <record name="TreeViewColumnClass" c:type="GtkTreeViewColumnClass" glib:is-gtype-struct-for="TreeViewColumn"> <field name="parent_class"> <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> </field> <field name="clicked"> <callback name="clicked"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_column" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeViewColumn</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <callback name="TreeViewColumnDropFunc" c:type="GtkTreeViewColumnDropFunc"> <doc xml:space="preserve">Function type for determining whether @column can be dropped in a particular spot (as determined by @prev_column and @next_column). In left to right locales, @prev_column is on the left of the potential drop spot, and @next_column is on the right. In right to left mode, this is reversed. This function should return %TRUE if the spot is a valid drop spot. Please note that returning %TRUE does not actually indicate that the column drop was made, but is meant only to indicate a possible drop spot to the user.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE, if @column can be dropped in this spot</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">The #GtkTreeViewColumn being dragged</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="prev_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn on one side of @column</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="next_column" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeViewColumn on the other side of @column</doc> <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="TreeViewColumnPrivate" c:type="GtkTreeViewColumnPrivate" disguised="1"> </record> <enumeration name="TreeViewColumnSizing" glib:type-name="GtkTreeViewColumnSizing" glib:get-type="gtk_tree_view_column_sizing_get_type" c:type="GtkTreeViewColumnSizing"> <doc xml:space="preserve">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.</doc> <member name="grow_only" value="0" c:identifier="GTK_TREE_VIEW_COLUMN_GROW_ONLY" glib:nick="grow-only"> <doc xml:space="preserve">Columns only get bigger in reaction to changes in the model</doc> </member> <member name="autosize" value="1" c:identifier="GTK_TREE_VIEW_COLUMN_AUTOSIZE" glib:nick="autosize"> <doc xml:space="preserve">Columns resize to be the optimal size everytime the model changes.</doc> </member> <member name="fixed" value="2" c:identifier="GTK_TREE_VIEW_COLUMN_FIXED" glib:nick="fixed"> <doc xml:space="preserve">Columns are a fixed numbers of pixels wide.</doc> </member> </enumeration> <enumeration name="TreeViewDropPosition" glib:type-name="GtkTreeViewDropPosition" glib:get-type="gtk_tree_view_drop_position_get_type" c:type="GtkTreeViewDropPosition"> <doc xml:space="preserve">An enum for determining where a dropped row goes.</doc> <member name="before" value="0" c:identifier="GTK_TREE_VIEW_DROP_BEFORE" glib:nick="before"> <doc xml:space="preserve">dropped row is inserted before</doc> </member> <member name="after" value="1" c:identifier="GTK_TREE_VIEW_DROP_AFTER" glib:nick="after"> <doc xml:space="preserve">dropped row is inserted after</doc> </member> <member name="into_or_before" value="2" c:identifier="GTK_TREE_VIEW_DROP_INTO_OR_BEFORE" glib:nick="into-or-before"> <doc xml:space="preserve">dropped row becomes a child or is inserted before</doc> </member> <member name="into_or_after" value="3" c:identifier="GTK_TREE_VIEW_DROP_INTO_OR_AFTER" glib:nick="into-or-after"> <doc xml:space="preserve">dropped row becomes a child or is inserted after</doc> </member> </enumeration> <enumeration name="TreeViewGridLines" glib:type-name="GtkTreeViewGridLines" glib:get-type="gtk_tree_view_grid_lines_get_type" c:type="GtkTreeViewGridLines"> <doc xml:space="preserve">Used to indicate which grid lines to draw in a tree view.</doc> <member name="none" value="0" c:identifier="GTK_TREE_VIEW_GRID_LINES_NONE" glib:nick="none"> <doc xml:space="preserve">No grid lines.</doc> </member> <member name="horizontal" value="1" c:identifier="GTK_TREE_VIEW_GRID_LINES_HORIZONTAL" glib:nick="horizontal"> <doc xml:space="preserve">Horizontal grid lines.</doc> </member> <member name="vertical" value="2" c:identifier="GTK_TREE_VIEW_GRID_LINES_VERTICAL" glib:nick="vertical"> <doc xml:space="preserve">Vertical grid lines.</doc> </member> <member name="both" value="3" c:identifier="GTK_TREE_VIEW_GRID_LINES_BOTH" glib:nick="both"> <doc xml:space="preserve">Horizontal and vertical grid lines.</doc> </member> </enumeration> <callback name="TreeViewMappingFunc" c:type="GtkTreeViewMappingFunc"> <doc xml:space="preserve">Function used for gtk_tree_view_map_expanded_rows().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <doc xml:space="preserve">A #GtkTreeView</doc> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">The path thatâs expanded</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <record name="TreeViewPrivate" c:type="GtkTreeViewPrivate" disguised="1"> </record> <callback name="TreeViewRowSeparatorFunc" c:type="GtkTreeViewRowSeparatorFunc"> <doc xml:space="preserve">Function type for determining whether the row pointed to by @iter should be rendered as a separator. A common way to implement this is to have a boolean column in the model, whose values the #GtkTreeViewRowSeparatorFunc returns.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the row is a separator</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter pointing at a row in @model</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <doc xml:space="preserve">user data</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="TreeViewSearchEqualFunc" c:type="GtkTreeViewSearchEqualFunc"> <doc xml:space="preserve">A function used for checking whether a row in @model matches a search key string entered by the user. Note the return value is reversed from what you would normally expect, though it has some similarity to strcmp() returning 0 for equal strings.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE if the row matches, %TRUE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="model" transfer-ownership="none"> <doc xml:space="preserve">the #GtkTreeModel being searched</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="column" transfer-ownership="none"> <doc xml:space="preserve">the search column set by gtk_tree_view_set_search_column()</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="key" transfer-ownership="none"> <doc xml:space="preserve">the key string to compare with</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeIter pointing the row of @model that should be compared with @key.</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="search_data" transfer-ownership="none" nullable="1" allow-none="1" closure="4"> <doc xml:space="preserve">user data from gtk_tree_view_set_search_equal_func()</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <callback name="TreeViewSearchPositionFunc" c:type="GtkTreeViewSearchPositionFunc"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="tree_view" transfer-ownership="none"> <type name="TreeView" c:type="GtkTreeView*"/> </parameter> <parameter name="search_dialog" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2"> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> <class name="UIManager" c:symbol-prefix="ui_manager" c:type="GtkUIManager" parent="GObject.Object" glib:type-name="GtkUIManager" glib:get-type="gtk_ui_manager_get_type" glib:type-struct="UIManagerClass"> <doc xml:space="preserve">A #GtkUIManager constructs a user interface (menus and toolbars) from one or more UI definitions, which reference actions from one or more action groups. # UI Definitions # {#XML-UI} The UI definitions are specified in an XML format which can be roughly described by the following DTD. > Do not confuse the GtkUIManager UI Definitions described here with > the similarly named [GtkBuilder UI Definitions][BUILDER-UI]. |[ <!ELEMENT ui (menubar|toolbar|popup|accelerator)* > <!ELEMENT menubar (menuitem|separator|placeholder|menu)* > <!ELEMENT menu (menuitem|separator|placeholder|menu)* > <!ELEMENT popup (menuitem|separator|placeholder|menu)* > <!ELEMENT toolbar (toolitem|separator|placeholder)* > <!ELEMENT placeholder (menuitem|toolitem|separator|placeholder|menu)* > <!ELEMENT menuitem EMPTY > <!ELEMENT toolitem (menu?) > <!ELEMENT separator EMPTY > <!ELEMENT accelerator EMPTY > <!ATTLIST menubar name #IMPLIED action #IMPLIED > <!ATTLIST toolbar name #IMPLIED action #IMPLIED > <!ATTLIST popup name #IMPLIED action #IMPLIED accelerators (true|false) #IMPLIED > <!ATTLIST placeholder name #IMPLIED action #IMPLIED > <!ATTLIST separator name #IMPLIED action #IMPLIED expand (true|false) #IMPLIED > <!ATTLIST menu name #IMPLIED action #REQUIRED position (top|bot) #IMPLIED > <!ATTLIST menuitem name #IMPLIED action #REQUIRED position (top|bot) #IMPLIED always-show-image (true|false) #IMPLIED > <!ATTLIST toolitem name #IMPLIED action #REQUIRED position (top|bot) #IMPLIED > <!ATTLIST accelerator name #IMPLIED action #REQUIRED > ]| There are some additional restrictions beyond those specified in the DTD, e.g. every toolitem must have a toolbar in its anchestry and every menuitem must have a menubar or popup in its anchestry. Since a #GMarkupParser is used to parse the UI description, it must not only be valid XML, but valid markup. If a name is not specified, it defaults to the action. If an action is not specified either, the element name is used. The name and action attributes must not contain â/â characters after parsing (since that would mess up path lookup) and must be usable as XML attributes when enclosed in doublequotes, thus they must not â"â characters or references to the &quot; entity. # A UI definition # |[ <ui> <menubar> <menu name="FileMenu" action="FileMenuAction"> <menuitem name="New" action="New2Action" /> <placeholder name="FileMenuAdditions" /> </menu> <menu name="JustifyMenu" action="JustifyMenuAction"> <menuitem name="Left" action="justify-left"/> <menuitem name="Centre" action="justify-center"/> <menuitem name="Right" action="justify-right"/> <menuitem name="Fill" action="justify-fill"/> </menu> </menubar> <toolbar action="toolbar1"> <placeholder name="JustifyToolItems"> <separator/> <toolitem name="Left" action="justify-left"/> <toolitem name="Centre" action="justify-center"/> <toolitem name="Right" action="justify-right"/> <toolitem name="Fill" action="justify-fill"/> <separator/> </placeholder> </toolbar> </ui> ]| The constructed widget hierarchy is very similar to the element tree of the XML, with the exception that placeholders are merged into their parents. The correspondence of XML elements to widgets should be almost obvious: - menubar a #GtkMenuBar - toolbar a #GtkToolbar - popup a toplevel #GtkMenu - menu a #GtkMenu attached to a menuitem - menuitem a #GtkMenuItem subclass, the exact type depends on the action - toolitem a #GtkToolItem subclass, the exact type depends on the action. Note that toolitem elements may contain a menu element, but only if their associated action specifies a #GtkMenuToolButton as proxy. - separator a #GtkSeparatorMenuItem or #GtkSeparatorToolItem - accelerator a keyboard accelerator The âpositionâ attribute determines where a constructed widget is positioned wrt. to its siblings in the partially constructed tree. If it is âtopâ, the widget is prepended, otherwise it is appended. # UI Merging # {#UI-Merging} The most remarkable feature of #GtkUIManager is that it can overlay a set of menuitems and toolitems over another one, and demerge them later. Merging is done based on the names of the XML elements. Each element is identified by a path which consists of the names of its anchestors, separated by slashes. For example, the menuitem named âLeftâ in the example above has the path `/ui/menubar/JustifyMenu/Left` and the toolitem with the same name has path `/ui/toolbar1/JustifyToolItems/Left`. # Accelerators # Every action has an accelerator path. Accelerators are installed together with menuitem proxies, but they can also be explicitly added with <accelerator> elements in the UI definition. This makes it possible to have accelerators for actions even if they have no visible proxies. # Smart Separators # {#Smart-Separators} The separators created by #GtkUIManager are âsmartâ, i.e. they do not show up in the UI unless they end up between two visible menu or tool items. Separators which are located at the very beginning or end of the menu or toolbar containing them, or multiple separators next to each other, are hidden. This is a useful feature, since the merging of UI elements from multiple sources can make it hard or impossible to determine in advance whether a separator will end up in such an unfortunate position. For separators in toolbars, you can set `expand="true"` to turn them from a small, visible separator to an expanding, invisible one. Toolitems following an expanding separator are effectively right-aligned. # Empty Menus Submenus pose similar problems to separators inconnection with merging. It is impossible to know in advance whether they will end up empty after merging. #GtkUIManager offers two ways to treat empty submenus: - make them disappear by hiding the menu item theyâre attached to - add an insensitive âEmptyâ item The behaviour is chosen based on the âhide_if_emptyâ property of the action to which the submenu is associated. # GtkUIManager as GtkBuildable # {#GtkUIManager-BUILDER-UI} The GtkUIManager implementation of the GtkBuildable interface accepts GtkActionGroup objects as <child> elements in UI definitions. A GtkUIManager UI definition as described above can be embedded in an GtkUIManager <object> element in a GtkBuilder UI definition. The widgets that are constructed by a GtkUIManager can be embedded in other parts of the constructed user interface with the help of the âconstructorâ attribute. See the example below. ## An embedded GtkUIManager UI definition |[ <object class="GtkUIManager" id="uiman"> <child> <object class="GtkActionGroup" id="actiongroup"> <child> <object class="GtkAction" id="file"> <property name="label">_File</property> </object> </child> </object> </child> <ui> <menubar name="menubar1"> <menu action="file"> </menu> </menubar> </ui> </object> <object class="GtkWindow" id="main-window"> <child> <object class="GtkMenuBar" id="menubar1" constructor="uiman"/> </child> </object> ]|</doc> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_ui_manager_new" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a new ui manager object.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new ui manager object.</doc> <type name="UIManager" c:type="GtkUIManager*"/> </return-value> </constructor> <virtual-method name="actions_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="add_widget"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="connect_proxy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="disconnect_proxy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_action" invoker="get_action" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up an action by following a path. See gtk_ui_manager_get_widget() for more information about paths.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action whose proxy widget is found by following the path, or %NULL if no widget was found.</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_widget" invoker="get_widget" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up a widget by following a path. The path consists of the names specified in the XML description of the UI. separated by â/â. Elements which donât have a name or action attribute in the XML (e.g. <popup>) can be addressed by their XML element name (e.g. "popup"). The root element ("/ui") can be omitted in the path. Note that the widget found by following a path that ends in a <menu>; element is the menuitem to which the menu is attached, not the menu it manages. Also note that the widgets constructed by a ui manager are not tied to the lifecycle of the ui manager. If you add the widgets returned by this function to some container or explicitly ref them, they will survive the destruction of the ui manager.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widget found by following the path, or %NULL if no widget was found</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </virtual-method> <virtual-method name="post_activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </virtual-method> <virtual-method name="pre_activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </virtual-method> <method name="add_ui" c:identifier="gtk_ui_manager_add_ui" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Adds a UI element to the current contents of @manager. If @type is %GTK_UI_MANAGER_AUTO, GTK+ inserts a menuitem, toolitem or separator if such an element can be inserted at the place determined by @path. Otherwise @type must indicate an element that can be inserted at the place determined by @path. If @path points to a menuitem or toolitem, the new element will be inserted before or after this item, depending on @top.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="merge_id" transfer-ownership="none"> <doc xml:space="preserve">the merge id for the merged UI, see gtk_ui_manager_new_merge_id()</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name for the added UI element</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="action" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of the action to be proxied, or %NULL to add a separator</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the type of UI element to add.</doc> <type name="UIManagerItemType" c:type="GtkUIManagerItemType"/> </parameter> <parameter name="top" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, the UI element is added before its siblings, otherwise it is added after its siblings.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="add_ui_from_file" c:identifier="gtk_ui_manager_add_ui_from_file" version="2.4" deprecated="1" deprecated-version="3.10" throws="1"> <doc xml:space="preserve">Parses a file containing a [UI definition][XML-UI] and merges it with the current contents of @manager.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The merge id for the merged UI. The merge id can be used to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred, the return value is 0.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager object</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the name of the file to parse</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_ui_from_resource" c:identifier="gtk_ui_manager_add_ui_from_resource" version="3.4" deprecated="1" deprecated-version="3.10" throws="1"> <doc xml:space="preserve">Parses a resource file containing a [UI definition][XML-UI] and merges it with the current contents of @manager.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The merge id for the merged UI. The merge id can be used to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred, the return value is 0.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager object</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="resource_path" transfer-ownership="none"> <doc xml:space="preserve">the resource path of the file to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="add_ui_from_string" c:identifier="gtk_ui_manager_add_ui_from_string" version="2.4" deprecated="1" deprecated-version="3.10" throws="1"> <doc xml:space="preserve">Parses a string containing a [UI definition][XML-UI] and merges it with the current contents of @manager. An enclosing <ui> element is added if it is missing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The merge id for the merged UI. The merge id can be used to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred, the return value is 0.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager object</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">the string to parse</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="length" transfer-ownership="none"> <doc xml:space="preserve">the length of @buffer (may be -1 if @buffer is nul-terminated)</doc> <type name="gssize" c:type="gssize"/> </parameter> </parameters> </method> <method name="ensure_update" c:identifier="gtk_ui_manager_ensure_update" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Makes sure that all pending updates to the UI have been completed. This may occasionally be necessary, since #GtkUIManager updates the UI in an idle function. A typical example where this function is useful is to enforce that the menubar and toolbar have been added to the main window before showing it: |[<!-- language="C" --> gtk_container_add (GTK_CONTAINER (window), vbox); g_signal_connect (merge, "add-widget", G_CALLBACK (add_widget), vbox); gtk_ui_manager_add_ui_from_file (merge, "my-menus"); gtk_ui_manager_add_ui_from_file (merge, "my-toolbars"); gtk_ui_manager_ensure_update (merge); gtk_widget_show (window); ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> </parameters> </method> <method name="get_accel_group" c:identifier="gtk_ui_manager_get_accel_group" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the #GtkAccelGroup associated with @manager.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkAccelGroup.</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager object</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> </parameters> </method> <method name="get_action" c:identifier="gtk_ui_manager_get_action" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up an action by following a path. See gtk_ui_manager_get_widget() for more information about paths.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action whose proxy widget is found by following the path, or %NULL if no widget was found.</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_action_groups" c:identifier="gtk_ui_manager_get_action_groups" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns the list of action groups associated with @manager.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GList of action groups. The list is owned by GTK+ and should not be modified.</doc> <type name="GLib.List" c:type="GList*"> <type name="ActionGroup"/> </type> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager object</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> </parameters> </method> <method name="get_add_tearoffs" c:identifier="gtk_ui_manager_get_add_tearoffs" version="2.4" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Returns whether menus generated by this #GtkUIManager will have tearoff menu items.</doc> <doc-deprecated xml:space="preserve">Tearoff menus are deprecated and should not be used in newly written code.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether tearoff menu items are added</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> </parameters> </method> <method name="get_toplevels" c:identifier="gtk_ui_manager_get_toplevels" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains a list of all toplevel widgets of the requested types.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a newly-allocated #GSList of all toplevel widgets of the requested types. Free the returned list with g_slist_free().</doc> <type name="GLib.SList" c:type="GSList*"> <type name="Widget"/> </type> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="types" transfer-ownership="none"> <doc xml:space="preserve">specifies the types of toplevel widgets to include. Allowed types are #GTK_UI_MANAGER_MENUBAR, #GTK_UI_MANAGER_TOOLBAR and #GTK_UI_MANAGER_POPUP.</doc> <type name="UIManagerItemType" c:type="GtkUIManagerItemType"/> </parameter> </parameters> </method> <method name="get_ui" c:identifier="gtk_ui_manager_get_ui" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Creates a [UI definition][XML-UI] of the merged UI.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly allocated string containing an XML representation of the merged UI.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> </parameters> </method> <method name="get_widget" c:identifier="gtk_ui_manager_get_widget" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up a widget by following a path. The path consists of the names specified in the XML description of the UI. separated by â/â. Elements which donât have a name or action attribute in the XML (e.g. <popup>) can be addressed by their XML element name (e.g. "popup"). The root element ("/ui") can be omitted in the path. Note that the widget found by following a path that ends in a <menu>; element is the menuitem to which the menu is attached, not the menu it manages. Also note that the widgets constructed by a ui manager are not tied to the lifecycle of the ui manager. If you add the widgets returned by this function to some container or explicitly ref them, they will survive the destruction of the ui manager.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widget found by following the path, or %NULL if no widget was found</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="insert_action_group" c:identifier="gtk_ui_manager_insert_action_group" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Inserts an action group into the list of action groups associated with @manager. Actions in earlier groups hide actions with the same name in later groups. If @pos is larger than the number of action groups in @manager, or negative, @action_group will be inserted at the end of the internal list.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager object</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group to be inserted</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">the position at which the group will be inserted.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="new_merge_id" c:identifier="gtk_ui_manager_new_merge_id" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns an unused merge id, suitable for use with gtk_ui_manager_add_ui().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">an unused merge id.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> </parameters> </method> <method name="remove_action_group" c:identifier="gtk_ui_manager_remove_action_group" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Removes an action group from the list of action groups associated with @manager.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager object</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="action_group" transfer-ownership="none"> <doc xml:space="preserve">the action group to be removed</doc> <type name="ActionGroup" c:type="GtkActionGroup*"/> </parameter> </parameters> </method> <method name="remove_ui" c:identifier="gtk_ui_manager_remove_ui" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Unmerges the part of @manager's content identified by @merge_id.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager object</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="merge_id" transfer-ownership="none"> <doc xml:space="preserve">a merge id as returned by gtk_ui_manager_add_ui_from_string()</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="set_add_tearoffs" c:identifier="gtk_ui_manager_set_add_tearoffs" version="2.4" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Sets the âadd_tearoffsâ property, which controls whether menus generated by this #GtkUIManager will have tearoff menu items. Note that this only affects regular menus. Generated popup menus never have tearoff menu items.</doc> <doc-deprecated xml:space="preserve">Tearoff menus are deprecated and should not be used in newly written code.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </instance-parameter> <parameter name="add_tearoffs" transfer-ownership="none"> <doc xml:space="preserve">whether tearoff menu items are added</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <property name="add-tearoffs" version="2.4" deprecated="1" deprecated-version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The "add-tearoffs" property controls whether generated menus have tearoff menu items. Note that this only affects regular menus. Generated popup menus never have tearoff menu items.</doc> <doc-deprecated xml:space="preserve">Tearoff menus are deprecated and should not be used in newly written code.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="ui" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <field name="parent"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="private_data" readable="0" private="1"> <type name="UIManagerPrivate" c:type="GtkUIManagerPrivate*"/> </field> <glib:signal name="actions-changed" when="first" no-recurse="1" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::actions-changed signal is emitted whenever the set of actions changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="add-widget" when="first" no-recurse="1" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::add-widget signal is emitted for each generated menubar and toolbar. It is not emitted for generated popup menus, which can be obtained by gtk_ui_manager_get_widget().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the added widget</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="connect-proxy" when="first" no-recurse="1" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::connect-proxy signal is emitted after connecting a proxy to an action in the group. This is intended for simple customizations for which a custom action class would be too clumsy, e.g. showing tooltips for menuitems in the statusbar.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action</doc> <type name="Action"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">the proxy</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="disconnect-proxy" when="first" no-recurse="1" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::disconnect-proxy signal is emitted after disconnecting a proxy from an action in the group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action</doc> <type name="Action"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">the proxy</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="post-activate" when="first" no-recurse="1" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::post-activate signal is emitted just after the @action is activated. This is intended for applications to get notification just after any action is activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action</doc> <type name="Action"/> </parameter> </parameters> </glib:signal> <glib:signal name="pre-activate" when="first" no-recurse="1" version="2.4" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">The ::pre-activate signal is emitted just before the @action is activated. This is intended for applications to get notification just before any action is activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="action" transfer-ownership="none"> <doc xml:space="preserve">the action</doc> <type name="Action"/> </parameter> </parameters> </glib:signal> </class> <record name="UIManagerClass" c:type="GtkUIManagerClass" glib:is-gtype-struct-for="UIManager"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="add_widget"> <callback name="add_widget"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="actions_changed"> <callback name="actions_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </parameter> </parameters> </callback> </field> <field name="connect_proxy"> <callback name="connect_proxy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="disconnect_proxy"> <callback name="disconnect_proxy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> <parameter name="proxy" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="pre_activate"> <callback name="pre_activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </callback> </field> <field name="post_activate"> <callback name="post_activate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <type name="UIManager" c:type="GtkUIManager*"/> </parameter> <parameter name="action" transfer-ownership="none"> <type name="Action" c:type="GtkAction*"/> </parameter> </parameters> </callback> </field> <field name="get_widget"> <callback name="get_widget"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widget found by following the path, or %NULL if no widget was found</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="get_action"> <callback name="get_action"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the action whose proxy widget is found by following the path, or %NULL if no widget was found.</doc> <type name="Action" c:type="GtkAction*"/> </return-value> <parameters> <parameter name="manager" transfer-ownership="none"> <doc xml:space="preserve">a #GtkUIManager</doc> <type name="UIManager" c:type="GtkUIManager*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a path</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <bitfield name="UIManagerItemType" deprecated="1" deprecated-version="3.10" glib:type-name="GtkUIManagerItemType" glib:get-type="gtk_ui_manager_item_type_get_type" c:type="GtkUIManagerItemType"> <doc xml:space="preserve">These enumeration values are used by gtk_ui_manager_add_ui() to determine what UI element to create.</doc> <member name="auto" value="0" c:identifier="GTK_UI_MANAGER_AUTO" glib:nick="auto"> <doc xml:space="preserve">Pick the type of the UI element according to context.</doc> </member> <member name="menubar" value="1" c:identifier="GTK_UI_MANAGER_MENUBAR" glib:nick="menubar"> <doc xml:space="preserve">Create a menubar.</doc> </member> <member name="menu" value="2" c:identifier="GTK_UI_MANAGER_MENU" glib:nick="menu"> <doc xml:space="preserve">Create a menu.</doc> </member> <member name="toolbar" value="4" c:identifier="GTK_UI_MANAGER_TOOLBAR" glib:nick="toolbar"> <doc xml:space="preserve">Create a toolbar.</doc> </member> <member name="placeholder" value="8" c:identifier="GTK_UI_MANAGER_PLACEHOLDER" glib:nick="placeholder"> <doc xml:space="preserve">Insert a placeholder.</doc> </member> <member name="popup" value="16" c:identifier="GTK_UI_MANAGER_POPUP" glib:nick="popup"> <doc xml:space="preserve">Create a popup menu.</doc> </member> <member name="menuitem" value="32" c:identifier="GTK_UI_MANAGER_MENUITEM" glib:nick="menuitem"> <doc xml:space="preserve">Create a menuitem.</doc> </member> <member name="toolitem" value="64" c:identifier="GTK_UI_MANAGER_TOOLITEM" glib:nick="toolitem"> <doc xml:space="preserve">Create a toolitem.</doc> </member> <member name="separator" value="128" c:identifier="GTK_UI_MANAGER_SEPARATOR" glib:nick="separator"> <doc xml:space="preserve">Create a separator.</doc> </member> <member name="accelerator" value="256" c:identifier="GTK_UI_MANAGER_ACCELERATOR" glib:nick="accelerator"> <doc xml:space="preserve">Install an accelerator.</doc> </member> <member name="popup_with_accels" value="512" c:identifier="GTK_UI_MANAGER_POPUP_WITH_ACCELS" glib:nick="popup-with-accels"> <doc xml:space="preserve">Same as %GTK_UI_MANAGER_POPUP, but the actionsâ accelerators are shown.</doc> </member> </bitfield> <record name="UIManagerPrivate" c:type="GtkUIManagerPrivate" disguised="1"> </record> <enumeration name="Unit" glib:type-name="GtkUnit" glib:get-type="gtk_unit_get_type" c:type="GtkUnit"> <doc xml:space="preserve">See also gtk_print_settings_set_paper_width().</doc> <member name="none" value="0" c:identifier="GTK_UNIT_NONE" glib:nick="none"> <doc xml:space="preserve">No units.</doc> </member> <member name="points" value="1" c:identifier="GTK_UNIT_POINTS" glib:nick="points"> <doc xml:space="preserve">Dimensions in points.</doc> </member> <member name="inch" value="2" c:identifier="GTK_UNIT_INCH" glib:nick="inch"> <doc xml:space="preserve">Dimensions in inches.</doc> </member> <member name="mm" value="3" c:identifier="GTK_UNIT_MM" glib:nick="mm"> <doc xml:space="preserve">Dimensions in millimeters</doc> </member> </enumeration> <class name="VBox" c:symbol-prefix="vbox" c:type="GtkVBox" parent="Box" glib:type-name="GtkVBox" glib:get-type="gtk_vbox_get_type" glib:type-struct="VBoxClass"> <doc xml:space="preserve">A #GtkVBox is a container that organizes child widgets into a single column. Use the #GtkBox packing interface to determine the arrangement, spacing, height, and alignment of #GtkVBox children. All children are allocated the same width. GtkVBox has been deprecated. You can use #GtkBox instead, which is a very quick and easy change. If you have derived your own classes from GtkVBox, you can simply change the inheritance to derive directly from #GtkBox, and set the #GtkOrientable:orientation property to %GTK_ORIENTATION_VERTICAL in your instance init function, with a call like: |[<!-- language="C" --> gtk_orientable_set_orientation (GTK_ORIENTABLE (object), GTK_ORIENTATION_VERTICAL); ]| If you donât need first-child or last-child styling and want your code to be future-proof, the recommendation is to switch to #GtkGrid instead of nested boxes. For more information about migrating to #GtkGrid, see [Migrating from other containers to GtkGrid][gtk-migrating-GtkGrid].</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_vbox_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new #GtkVBox.</doc> <doc-deprecated xml:space="preserve">You can use gtk_box_new() with %GTK_ORIENTATION_VERTICAL instead, which is a quick and easy change. But the recommendation is to switch to #GtkGrid, since #GtkBox is going to go away eventually. See [Migrating from other containers to GtkGrid][gtk-migrating-GtkGrid].</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkVBox.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="homogeneous" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if all children are to be given equal space allotments.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="spacing" transfer-ownership="none"> <doc xml:space="preserve">the number of pixels to place by default between children.</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </constructor> <field name="box"> <type name="Box" c:type="GtkBox"/> </field> </class> <record name="VBoxClass" c:type="GtkVBoxClass" glib:is-gtype-struct-for="VBox"> <field name="parent_class"> <type name="BoxClass" c:type="GtkBoxClass"/> </field> </record> <class name="VButtonBox" c:symbol-prefix="vbutton_box" c:type="GtkVButtonBox" parent="ButtonBox" glib:type-name="GtkVButtonBox" glib:get-type="gtk_vbutton_box_get_type" glib:type-struct="VButtonBoxClass"> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_vbutton_box_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new vertical button box.</doc> <doc-deprecated xml:space="preserve">Use gtk_button_box_new() with %GTK_ORIENTATION_VERTICAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new button box #GtkWidget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="button_box"> <type name="ButtonBox" c:type="GtkButtonBox"/> </field> </class> <record name="VButtonBoxClass" c:type="GtkVButtonBoxClass" glib:is-gtype-struct-for="VButtonBox"> <field name="parent_class"> <type name="ButtonBoxClass" c:type="GtkButtonBoxClass"/> </field> </record> <class name="VPaned" c:symbol-prefix="vpaned" c:type="GtkVPaned" parent="Paned" glib:type-name="GtkVPaned" glib:get-type="gtk_vpaned_get_type" glib:type-struct="VPanedClass"> <doc xml:space="preserve">The VPaned widget is a container widget with two children arranged vertically. The division between the two panes is adjustable by the user by dragging a handle. See #GtkPaned for details. GtkVPaned has been deprecated, use #GtkPaned instead.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_vpaned_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Create a new #GtkVPaned</doc> <doc-deprecated xml:space="preserve">Use gtk_paned_new() with %GTK_ORIENTATION_VERTICAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkVPaned</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="paned"> <type name="Paned" c:type="GtkPaned"/> </field> </class> <record name="VPanedClass" c:type="GtkVPanedClass" glib:is-gtype-struct-for="VPaned"> <field name="parent_class"> <type name="PanedClass" c:type="GtkPanedClass"/> </field> </record> <class name="VScale" c:symbol-prefix="vscale" c:type="GtkVScale" parent="Scale" glib:type-name="GtkVScale" glib:get-type="gtk_vscale_get_type" glib:type-struct="VScaleClass"> <doc xml:space="preserve">The #GtkVScale widget is used to allow the user to select a value using a vertical slider. To create one, use gtk_hscale_new_with_range(). The position to show the current value, and the number of decimal places shown can be set using the parent #GtkScale classâs functions. GtkVScale has been deprecated, use #GtkScale instead.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_vscale_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new #GtkVScale.</doc> <doc-deprecated xml:space="preserve">Use gtk_scale_new() with %GTK_ORIENTATION_VERTICAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkVScale.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="adjustment" transfer-ownership="none"> <doc xml:space="preserve">the #GtkAdjustment which sets the range of the scale.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <constructor name="new_with_range" c:identifier="gtk_vscale_new_with_range" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new vertical scale widget that lets 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 gtk_scale_set_digits() to correct it.</doc> <doc-deprecated xml:space="preserve">Use gtk_scale_new_with_range() with %GTK_ORIENTATION_VERTICAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkVScale</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="min" transfer-ownership="none"> <doc xml:space="preserve">minimum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="max" transfer-ownership="none"> <doc xml:space="preserve">maximum value</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">step increment (tick size) used with keyboard shortcuts</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </constructor> <field name="scale"> <type name="Scale" c:type="GtkScale"/> </field> </class> <record name="VScaleClass" c:type="GtkVScaleClass" glib:is-gtype-struct-for="VScale"> <field name="parent_class"> <type name="ScaleClass" c:type="GtkScaleClass"/> </field> </record> <class name="VScrollbar" c:symbol-prefix="vscrollbar" c:type="GtkVScrollbar" parent="Scrollbar" glib:type-name="GtkVScrollbar" glib:get-type="gtk_vscrollbar_get_type" glib:type-struct="VScrollbarClass"> <doc xml:space="preserve">The #GtkVScrollbar widget is a widget arranged vertically creating a scrollbar. See #GtkScrollbar for details on scrollbars. #GtkAdjustment pointers may be added to handle the adjustment of the scrollbar or it may be left %NULL in which case one will be created for you. See #GtkScrollbar for a description of what the fields in an adjustment represent for a scrollbar. GtkVScrollbar has been deprecated, use #GtkScrollbar instead.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_vscrollbar_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new vertical scrollbar.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollbar_new() with %GTK_ORIENTATION_VERTICAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the new #GtkVScrollbar</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the #GtkAdjustment to use, or %NULL to create a new adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <field name="scrollbar"> <type name="Scrollbar" c:type="GtkScrollbar"/> </field> </class> <record name="VScrollbarClass" c:type="GtkVScrollbarClass" glib:is-gtype-struct-for="VScrollbar"> <field name="parent_class"> <type name="ScrollbarClass" c:type="GtkScrollbarClass"/> </field> </record> <class name="VSeparator" c:symbol-prefix="vseparator" c:type="GtkVSeparator" parent="Separator" glib:type-name="GtkVSeparator" glib:get-type="gtk_vseparator_get_type" glib:type-struct="VSeparatorClass"> <doc xml:space="preserve">The #GtkVSeparator widget is a vertical separator, used to group the widgets within a window. It displays a vertical line with a shadow to make it appear sunken into the interface. GtkVSeparator has been deprecated, use #GtkSeparator instead.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_vseparator_new" deprecated="1" deprecated-version="3.2"> <doc xml:space="preserve">Creates a new #GtkVSeparator.</doc> <doc-deprecated xml:space="preserve">Use gtk_separator_new() with %GTK_ORIENTATION_VERTICAL instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkVSeparator.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <field name="separator"> <type name="Separator" c:type="GtkSeparator"/> </field> </class> <record name="VSeparatorClass" c:type="GtkVSeparatorClass" glib:is-gtype-struct-for="VSeparator"> <field name="parent_class"> <type name="SeparatorClass" c:type="GtkSeparatorClass"/> </field> </record> <class name="Viewport" c:symbol-prefix="viewport" c:type="GtkViewport" parent="Bin" glib:type-name="GtkViewport" glib:get-type="gtk_viewport_get_type" glib:type-struct="ViewportClass"> <doc xml:space="preserve">The #GtkViewport widget acts as an adaptor class, implementing scrollability for child widgets that lack their own scrolling capabilities. Use GtkViewport to scroll child widgets such as #GtkGrid, #GtkBox, and so on. If a widget has native scrolling abilities, such as #GtkTextView, #GtkTreeView or #GtkIconView, it can be added to a #GtkScrolledWindow with gtk_container_add(). If a widget does not, you must first add the widget to a #GtkViewport, then add the viewport to the scrolled window. gtk_container_add() does this automatically if a child that does not implement #GtkScrollable is added to a #GtkScrolledWindow, so you can ignore the presence of the viewport. The GtkViewport will start scrolling content only if allocated less than the child widgetâs minimum size in a given orientation. # CSS nodes GtkViewport has a single CSS node with name viewport.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <implements name="Scrollable"/> <constructor name="new" c:identifier="gtk_viewport_new"> <doc xml:space="preserve">Creates a new #GtkViewport with the given adjustments, or with default adjustments if none are given.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkViewport</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="hadjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">horizontal adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> <parameter name="vadjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">vertical adjustment</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </constructor> <method name="get_bin_window" c:identifier="gtk_viewport_get_bin_window" version="2.20"> <doc xml:space="preserve">Gets the bin window of the #GtkViewport.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="viewport" transfer-ownership="none"> <doc xml:space="preserve">a #GtkViewport</doc> <type name="Viewport" c:type="GtkViewport*"/> </instance-parameter> </parameters> </method> <method name="get_hadjustment" c:identifier="gtk_viewport_get_hadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Returns the horizontal adjustment of the viewport.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_hadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the horizontal adjustment of @viewport.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="viewport" transfer-ownership="none"> <doc xml:space="preserve">a #GtkViewport.</doc> <type name="Viewport" c:type="GtkViewport*"/> </instance-parameter> </parameters> </method> <method name="get_shadow_type" c:identifier="gtk_viewport_get_shadow_type"> <doc xml:space="preserve">Gets the shadow type of the #GtkViewport. See gtk_viewport_set_shadow_type().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the shadow type</doc> <type name="ShadowType" c:type="GtkShadowType"/> </return-value> <parameters> <instance-parameter name="viewport" transfer-ownership="none"> <doc xml:space="preserve">a #GtkViewport</doc> <type name="Viewport" c:type="GtkViewport*"/> </instance-parameter> </parameters> </method> <method name="get_vadjustment" c:identifier="gtk_viewport_get_vadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Returns the vertical adjustment of the viewport.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_get_vadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical adjustment of @viewport.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </return-value> <parameters> <instance-parameter name="viewport" transfer-ownership="none"> <doc xml:space="preserve">a #GtkViewport.</doc> <type name="Viewport" c:type="GtkViewport*"/> </instance-parameter> </parameters> </method> <method name="get_view_window" c:identifier="gtk_viewport_get_view_window" version="2.22"> <doc xml:space="preserve">Gets the view window of the #GtkViewport.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="viewport" transfer-ownership="none"> <doc xml:space="preserve">a #GtkViewport</doc> <type name="Viewport" c:type="GtkViewport*"/> </instance-parameter> </parameters> </method> <method name="set_hadjustment" c:identifier="gtk_viewport_set_hadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the horizontal adjustment of the viewport.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_set_hadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="viewport" transfer-ownership="none"> <doc xml:space="preserve">a #GtkViewport.</doc> <type name="Viewport" c:type="GtkViewport*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkAdjustment.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <method name="set_shadow_type" c:identifier="gtk_viewport_set_shadow_type"> <doc xml:space="preserve">Sets the shadow type of the viewport.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="viewport" transfer-ownership="none"> <doc xml:space="preserve">a #GtkViewport.</doc> <type name="Viewport" c:type="GtkViewport*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">the new shadow type.</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> </parameters> </method> <method name="set_vadjustment" c:identifier="gtk_viewport_set_vadjustment" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the vertical adjustment of the viewport.</doc> <doc-deprecated xml:space="preserve">Use gtk_scrollable_set_vadjustment()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="viewport" transfer-ownership="none"> <doc xml:space="preserve">a #GtkViewport.</doc> <type name="Viewport" c:type="GtkViewport*"/> </instance-parameter> <parameter name="adjustment" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkAdjustment.</doc> <type name="Adjustment" c:type="GtkAdjustment*"/> </parameter> </parameters> </method> <property name="shadow-type" writable="1" transfer-ownership="none"> <type name="ShadowType"/> </property> <field name="bin"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv" readable="0" private="1"> <type name="ViewportPrivate" c:type="GtkViewportPrivate*"/> </field> </class> <record name="ViewportClass" c:type="GtkViewportClass" glib:is-gtype-struct-for="Viewport"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="ViewportPrivate" c:type="GtkViewportPrivate" disguised="1"> </record> <class name="VolumeButton" c:symbol-prefix="volume_button" c:type="GtkVolumeButton" parent="ScaleButton" glib:type-name="GtkVolumeButton" glib:get-type="gtk_volume_button_get_type" glib:type-struct="VolumeButtonClass"> <doc xml:space="preserve">#GtkVolumeButton is a subclass of #GtkScaleButton that has been tailored for use as a volume control widget with suitable icons, tooltips and accessible labels.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Actionable"/> <implements name="Activatable"/> <implements name="Buildable"/> <implements name="Orientable"/> <constructor name="new" c:identifier="gtk_volume_button_new" version="2.12"> <doc xml:space="preserve">Creates a #GtkVolumeButton, with 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 #GtkScaleButton.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkVolumeButton</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </constructor> <property name="use-symbolic" version="3.0" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <field name="parent"> <type name="ScaleButton" c:type="GtkScaleButton"/> </field> </class> <record name="VolumeButtonClass" c:type="GtkVolumeButtonClass" glib:is-gtype-struct-for="VolumeButton"> <field name="parent_class"> <type name="ScaleButtonClass" c:type="GtkScaleButtonClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <class name="Widget" c:symbol-prefix="widget" c:type="GtkWidget" parent="GObject.InitiallyUnowned" abstract="1" glib:type-name="GtkWidget" glib:get-type="gtk_widget_get_type" glib:type-struct="WidgetClass"> <doc xml:space="preserve">GtkWidget is the base class all widgets in GTK+ derive from. It manages the widget lifecycle, states and style. # Height-for-width Geometry Management # {#geometry-management} GTK+ uses a height-for-width (and width-for-height) geometry management system. Height-for-width means that a widget can change how much vertical space it needs, depending on the amount of horizontal space that it is given (and similar for width-for-height). The most common example is a label that reflows to fill up the available width, wraps to fewer lines, and therefore needs less height. Height-for-width geometry management is implemented in GTK+ by way of five virtual methods: - #GtkWidgetClass.get_request_mode() - #GtkWidgetClass.get_preferred_width() - #GtkWidgetClass.get_preferred_height() - #GtkWidgetClass.get_preferred_height_for_width() - #GtkWidgetClass.get_preferred_width_for_height() - #GtkWidgetClass.get_preferred_height_and_baseline_for_width() There are some important things to keep in mind when implementing height-for-width and when using it in container implementations. The geometry management system will query a widget hierarchy in only one orientation at a time. When widgets are initially queried for their minimum sizes it is generally done in two initial passes in the #GtkSizeRequestMode chosen by the toplevel. For example, when queried in the normal %GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH mode: First, the default minimum and natural width for each widget in the interface will be computed using gtk_widget_get_preferred_width(). Because the preferred widths for each container depend on the preferred widths of their children, this information propagates up the hierarchy, and finally a minimum and natural width is determined for the entire toplevel. Next, the toplevel will use the minimum width to query for the minimum height contextual to that width using gtk_widget_get_preferred_height_for_width(), which will also be a highly recursive operation. The minimum height for the minimum width is normally used to set the minimum size constraint on the toplevel (unless gtk_window_set_geometry_hints() is explicitly used instead). After the toplevel window has initially requested its size in both dimensions it can go on to allocate itself a reasonable size (or a size previously specified with gtk_window_set_default_size()). During the recursive allocation process itâs important to note that request cycles will be recursively executed while container widgets allocate their children. Each container widget, once allocated a size, will go on to first share the space in one orientation among its children and then request each child's height for its target allocated width or its width for allocated height, depending. In this way a #GtkWidget will typically be requested its size a number of times before actually being allocated a size. The size a widget is finally allocated can of course differ from the size it has requested. For this reason, #GtkWidget caches a small number of results to avoid re-querying for the same sizes in one allocation cycle. See [GtkContainerâs geometry management section][container-geometry-management] to learn more about how height-for-width allocations are performed by container widgets. If a widget does move content around to intelligently use up the allocated size then it must support the request in both #GtkSizeRequestModes even if the widget in question only trades sizes in a single orientation. For instance, a #GtkLabel that does height-for-width word wrapping will not expect to have #GtkWidgetClass.get_preferred_height() called because that call is specific to a width-for-height request. In this case the label must return the height required for its own minimum possible width. By following this rule any widget that handles height-for-width or width-for-height requests will always be allocated at least enough space to fit its own content. Here are some examples of how a %GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH widget generally deals with width-for-height requests, for #GtkWidgetClass.get_preferred_height() it will do: |[<!-- language="C" --> static void foo_widget_get_preferred_height (GtkWidget *widget, gint *min_height, gint *nat_height) { if (i_am_in_height_for_width_mode) { gint min_width, nat_width; GTK_WIDGET_GET_CLASS (widget)->get_preferred_width (widget, &min_width, &nat_width); GTK_WIDGET_GET_CLASS (widget)->get_preferred_height_for_width (widget, min_width, min_height, nat_height); } else { ... some widgets do both. For instance, if a GtkLabel is rotated to 90 degrees it will return the minimum and natural height for the rotated label here. } } ]| And in #GtkWidgetClass.get_preferred_width_for_height() it will simply return the minimum and natural width: |[<!-- language="C" --> static void foo_widget_get_preferred_width_for_height (GtkWidget *widget, gint for_height, gint *min_width, gint *nat_width) { if (i_am_in_height_for_width_mode) { GTK_WIDGET_GET_CLASS (widget)->get_preferred_width (widget, min_width, nat_width); } else { ... again if a widget is sometimes operating in width-for-height mode (like a rotated GtkLabel) it can go ahead and do its real width for height calculation here. } } ]| Often a widget needs to get its own request during size request or allocation. For example, when computing height it may need to also compute width. Or when deciding how to use an allocation, the widget may need to know its natural size. In these cases, the widget should be careful to call its virtual methods directly, like this: |[<!-- language="C" --> GTK_WIDGET_GET_CLASS(widget)->get_preferred_width (widget, &min, &natural); ]| It will not work to use the wrapper functions, such as gtk_widget_get_preferred_width() inside your own size request implementation. These return a request adjusted by #GtkSizeGroup and by the #GtkWidgetClass.adjust_size_request() virtual method. If a widget used the wrappers inside its virtual method implementations, then the adjustments (such as widget margins) would be applied twice. GTK+ therefore does not allow this and will warn if you try to do it. Of course if you are getting the size request for another widget, such as a child of a container, you must use the wrapper APIs. Otherwise, you would not properly consider widget margins, #GtkSizeGroup, and so forth. Since 3.10 GTK+ also supports baseline vertical alignment of widgets. This means that widgets are positioned such that the typographical baseline of widgets in the same row are aligned. This happens if a widget supports baselines, has a vertical alignment of %GTK_ALIGN_BASELINE, and is inside a container that supports baselines and has a natural ârowâ that it aligns to the baseline, or a baseline assigned to it by the grandparent. Baseline alignment support for a widget is done by the #GtkWidgetClass.get_preferred_height_and_baseline_for_width() virtual function. It allows you to report a baseline in combination with the minimum and natural height. If there is no baseline you can return -1 to indicate this. The default implementation of this virtual function calls into the #GtkWidgetClass.get_preferred_height() and #GtkWidgetClass.get_preferred_height_for_width(), so if baselines are not supported it doesnât need to be implemented. If a widget ends up baseline aligned it will be allocated all the space in the parent as if it was %GTK_ALIGN_FILL, but the selected baseline can be found via gtk_widget_get_allocated_baseline(). If this has a value other than -1 you need to align the widget such that the baseline appears at the position. # Style Properties #GtkWidget introduces âstyle propertiesâ - these are basically object properties that are stored not on the object, but in the style object associated to the widget. Style properties are set in [resource files][gtk3-Resource-Files]. This mechanism is used for configuring such things as the location of the scrollbar arrows through the theme, giving theme authors more control over the look of applications without the need to write a theme engine in C. Use gtk_widget_class_install_style_property() to install style properties for a widget class, gtk_widget_class_find_style_property() or gtk_widget_class_list_style_properties() to get information about existing style properties and gtk_widget_style_get_property(), gtk_widget_style_get() or gtk_widget_style_get_valist() to obtain the value of a style property. # GtkWidget as GtkBuildable The GtkWidget implementation of the GtkBuildable interface supports a custom <accelerator> element, which has attributes named âkeyâ, âmodifiersâ and âsignalâ and allows to specify accelerators. An example of a UI definition fragment specifying an accelerator: |[ <object class="GtkButton"> <accelerator key="q" modifiers="GDK_CONTROL_MASK" signal="clicked"/> </object> ]| In addition to accelerators, GtkWidget also support a custom <accessible> element, which supports actions and relations. Properties on the accessible implementation of an object can be set by accessing the internal child âaccessibleâ of a #GtkWidget. An example of a UI definition fragment specifying an accessible: |[ <object class="GtkButton" id="label1"/> <property name="label">I am a Label for a Button</property> </object> <object class="GtkButton" id="button1"> <accessibility> <action action_name="click" translatable="yes">Click the button.</action> <relation target="label1" type="labelled-by"/> </accessibility> <child internal-child="accessible"> <object class="AtkObject" id="a11y-button1"> <property name="accessible-name">Clickable Button</property> </object> </child> </object> ]| Finally, GtkWidget allows style information such as style classes to be associated with widgets, using the custom <style> element: |[ <object class="GtkButton" id="button1"> <style> <class name="my-special-button-class"/> <class name="dark-button"/> </style> </object> ]| # Building composite widgets from template XML ## {#composite-templates} GtkWidget exposes some facilities to automate the procedure of creating composite widgets using #GtkBuilder interface description language. To create composite widgets with #GtkBuilder XML, one must associate the interface description with the widget class at class initialization time using gtk_widget_class_set_template(). The interface description semantics expected in composite template descriptions is slightly different from regular #GtkBuilder XML. Unlike regular interface descriptions, gtk_widget_class_set_template() will expect a <template> tag as a direct child of the toplevel <interface> tag. The <template> tag must specify the âclassâ attribute which must be the type name of the widget. Optionally, the âparentâ attribute may be specified to specify the direct parent type of the widget type, this is ignored by the GtkBuilder but required for Glade to introspect what kind of properties and internal children exist for a given type when the actual type does not exist. The XML which is contained inside the <template> tag behaves as if it were added to the <object> tag defining @widget itself. You may set properties on @widget by inserting <property> tags into the <template> tag, and also add <child> tags to add children and extend @widget in the normal way you would with <object> tags. Additionally, <object> tags can also be added before and after the initial <template> tag in the normal way, allowing one to define auxiliary objects which might be referenced by other widgets declared as children of the <template> tag. An example of a GtkBuilder Template Definition: |[ <interface> <template class="FooWidget" parent="GtkBox"> <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property> <property name="spacing">4</property> <child> <object class="GtkButton" id="hello_button"> <property name="label">Hello World</property> <signal name="clicked" handler="hello_button_clicked" object="FooWidget" swapped="yes"/> </object> </child> <child> <object class="GtkButton" id="goodbye_button"> <property name="label">Goodbye World</property> </object> </child> </template> </interface> ]| Typically, you'll place the template fragment into a file that is bundled with your project, using #GResource. In order to load the template, you need to call gtk_widget_class_set_template_from_resource() from the class initialization of your #GtkWidget type: |[<!-- language="C" --> static void foo_widget_class_init (FooWidgetClass *klass) { // ... gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/com/example/ui/foowidget.ui"); } ]| You will also need to call gtk_widget_init_template() from the instance initialization function: |[<!-- language="C" --> static void foo_widget_init (FooWidget *self) { // ... gtk_widget_init_template (GTK_WIDGET (self)); } ]| You can access widgets defined in the template using the gtk_widget_get_template_child() function, but you will typically declare a pointer in the instance private data structure of your type using the same name as the widget in the template definition, and call gtk_widget_class_bind_template_child_private() with that name, e.g. |[<!-- language="C" --> typedef struct { GtkWidget *hello_button; GtkWidget *goodbye_button; } FooWidgetPrivate; G_DEFINE_TYPE_WITH_PRIVATE (FooWidget, foo_widget, GTK_TYPE_BOX) static void foo_widget_class_init (FooWidgetClass *klass) { // ... gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/com/example/ui/foowidget.ui"); gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), FooWidget, hello_button); gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), FooWidget, goodbye_button); } static void foo_widget_init (FooWidget *widget) { } ]| You can also use gtk_widget_class_bind_template_callback() to connect a signal callback defined in the template with a function visible in the scope of the class, e.g. |[<!-- language="C" --> // the signal handler has the instance and user data swapped // because of the swapped="yes" attribute in the template XML static void hello_button_clicked (FooWidget *self, GtkButton *button) { g_print ("Hello, world!\n"); } static void foo_widget_class_init (FooWidgetClass *klass) { // ... gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/com/example/ui/foowidget.ui"); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), hello_button_clicked); } ]|</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_widget_new" introspectable="0"> <doc xml:space="preserve">This is a convenience function for creating a widget and setting its properties in one go. For example you might write: `gtk_widget_new (GTK_TYPE_LABEL, "label", "Hello World", "xalign", 0.0, NULL)` to create a left-aligned label. Equivalent to g_object_new(), but returns a widget so you donât have to cast the object yourself.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkWidget of type @widget_type</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">type ID of the widget to create</doc> <type name="GType" c:type="GType"/> </parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">name of first property to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">value of first property, followed by more properties, %NULL-terminated</doc> <varargs/> </parameter> </parameters> </constructor> <function name="get_default_direction" c:identifier="gtk_widget_get_default_direction"> <doc xml:space="preserve">Obtains the current default reading direction. See gtk_widget_set_default_direction().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current default direction.</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </return-value> </function> <function name="get_default_style" c:identifier="gtk_widget_get_default_style" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Returns the default style used by all widgets initially.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead, and gtk_css_provider_get_default() to obtain a #GtkStyleProvider with the default widget style information.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default style. This #GtkStyle object is owned by GTK+ and should not be modified or freed.</doc> <type name="Style" c:type="GtkStyle*"/> </return-value> </function> <function name="pop_composite_child" c:identifier="gtk_widget_pop_composite_child" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Cancels the effect of a previous call to gtk_widget_push_composite_child().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_class_set_template(), or donât use this API at all.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </function> <function name="push_composite_child" c:identifier="gtk_widget_push_composite_child" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Makes all newly-created widgets as composite children until the corresponding gtk_widget_pop_composite_child() call. A composite child is a child thatâs an implementation detail of the container itâs inside and should not be visible to people using the container. Composite children arenât treated differently by GTK+ (but see gtk_container_foreach() vs. gtk_container_forall()), but e.g. GUI builders might want to treat them in a different way.</doc> <doc-deprecated xml:space="preserve">This API never really worked well and was mostly unused, now we have a more complete mechanism for composite children, see gtk_widget_class_set_template().</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </function> <function name="set_default_direction" c:identifier="gtk_widget_set_default_direction"> <doc xml:space="preserve">Sets the default reading direction for widgets where the direction has not been explicitly set by gtk_widget_set_direction().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="dir" transfer-ownership="none"> <doc xml:space="preserve">the new default direction. This cannot be %GTK_TEXT_DIR_NONE.</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> </parameters> </function> <virtual-method name="adjust_baseline_allocation"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="baseline" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="adjust_baseline_request"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="minimum_baseline" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_baseline" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="adjust_size_allocation"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="minimum_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="allocated_pos" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="allocated_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="adjust_size_request"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="minimum_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="button_press_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventButton" c:type="GdkEventButton*"/> </parameter> </parameters> </virtual-method> <virtual-method name="button_release_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventButton" c:type="GdkEventButton*"/> </parameter> </parameters> </virtual-method> <virtual-method name="can_activate_accel" invoker="can_activate_accel" version="2.4"> <doc xml:space="preserve">Determines whether an accelerator that activates the signal identified by @signal_id can currently be activated. This is done by emitting the #GtkWidget::can-activate-accel signal on @widget; if the signal isnât overridden by a handler or in a derived widget, then the default check is that the widget must be sensitive, and the widget and all its ancestors mapped.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the accelerator can be activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="signal_id" transfer-ownership="none"> <doc xml:space="preserve">the ID of a signal installed on @widget</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="child_notify" invoker="child_notify"> <doc xml:space="preserve">Emits a #GtkWidget::child-notify signal for the [child property][child-properties] @child_property on @widget. This is the analogue of g_object_notify() for child properties. Also see gtk_container_child_notify().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="child_property" transfer-ownership="none"> <doc xml:space="preserve">the name of a child property installed on the class of @widgetâs parent</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </virtual-method> <virtual-method name="composited_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="compute_expand"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="hexpand_p" transfer-ownership="none"> <type name="gboolean" c:type="gboolean*"/> </parameter> <parameter name="vexpand_p" transfer-ownership="none"> <type name="gboolean" c:type="gboolean*"/> </parameter> </parameters> </virtual-method> <virtual-method name="configure_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventConfigure" c:type="GdkEventConfigure*"/> </parameter> </parameters> </virtual-method> <virtual-method name="damage_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventExpose" c:type="GdkEventExpose*"/> </parameter> </parameters> </virtual-method> <virtual-method name="delete_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventAny" c:type="GdkEventAny*"/> </parameter> </parameters> </virtual-method> <virtual-method name="destroy" invoker="destroy"> <doc xml:space="preserve">Destroys a widget. When a widget is destroyed all references it holds on other objects will be released: - if the widget is inside a container, it will be removed from its parent - if the widget is a container, all its children will be destroyed, recursively - if the widget is a top level, it will be removed from the list of top level widgets that GTK+ maintains internally It's expected that all references held on the widget will also be released; you should connect to the #GtkWidget::destroy signal if you hold a reference to @widget and you wish to remove it when this function is called. It is not necessary to do so if you are implementing a #GtkContainer, as you'll be able to use the #GtkContainerClass.remove() virtual function for that. It's important to notice that gtk_widget_destroy() will only cause the @widget to be finalized if no additional references, acquired using g_object_ref(), are held on it. In case additional references are in place, the @widget will be in an "inert" state after calling this function; @widget will still point to valid memory, allowing you to release the references you hold, but you may not query the widget's own state. You should typically call this function on top level widgets, and rarely on child widgets. See also: gtk_container_remove()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="destroy_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventAny" c:type="GdkEventAny*"/> </parameter> </parameters> </virtual-method> <virtual-method name="direction_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="previous_direction" transfer-ownership="none"> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> </parameters> </virtual-method> <virtual-method name="dispatch_child_properties_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="n_pspecs" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="pspecs" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec**"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_begin"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_data_delete"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_data_get"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="info" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_data_received"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="info" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_drop"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_end"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_failed"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="result" transfer-ownership="none"> <type name="DragResult" c:type="GtkDragResult"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_leave"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="drag_motion"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="draw"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </virtual-method> <virtual-method name="enter_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventCrossing" c:type="GdkEventCrossing*"/> </parameter> </parameters> </virtual-method> <virtual-method name="event" invoker="event"> <doc xml:space="preserve">Rarely-used function. This function is used to emit the event signals on a widget (those signals should never be emitted without using this function to do so). If you want to synthesize an event though, donât use this function; instead, use gtk_main_do_event() so the event will behave as if it were in the event queue. Donât synthesize expose events; instead, use gdk_window_invalidate_rect() to invalidate a region of the window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">return from the event signal emission (%TRUE if the event was handled)</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </virtual-method> <virtual-method name="focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="focus_in_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventFocus" c:type="GdkEventFocus*"/> </parameter> </parameters> </virtual-method> <virtual-method name="focus_out_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventFocus" c:type="GdkEventFocus*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_accessible" invoker="get_accessible"> <doc xml:space="preserve">Returns the accessible object that describes the widget to an assistive technology. If accessibility support is not available, this #AtkObject instance may be a no-op. Likewise, if no class-specific #AtkObject implementation is available for the widget instance in question, it will inherit an #AtkObject implementation from the first ancestor class for which such an implementation is defined. The documentation of the [ATK](http://developer.gnome.org/atk/stable/) library contains more information about accessible objects and their uses.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #AtkObject associated with @widget</doc> <type name="Atk.Object" c:type="AtkObject*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_height" invoker="get_preferred_height" version="3.0"> <doc xml:space="preserve">Retrieves a widgetâs initial minimum and natural height. This call is specific to width-for-height requests. The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_height_and_baseline_for_width" invoker="get_preferred_height_and_baseline_for_width" version="3.10"> <doc xml:space="preserve">Retrieves a widgetâs minimum and natural height and the corresponding baselines if it would be given the specified @width, or the default height if @width is -1. The baselines may be -1 which means that no baseline is requested for this widget. The returned request will be modified by the GtkWidgetClass::adjust_size_request and GtkWidgetClass::adjust_baseline_request virtual methods and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width which is available for allocation, or -1 if none</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="minimum_baseline" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the baseline for the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_baseline" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the baseline for the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_height_for_width" invoker="get_preferred_height_for_width" version="3.0"> <doc xml:space="preserve">Retrieves a widgetâs minimum and natural height if it would be given the specified @width. The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_width" invoker="get_preferred_width" version="3.0"> <doc xml:space="preserve">Retrieves a widgetâs initial minimum and natural width. This call is specific to height-for-width requests. The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_preferred_width_for_height" invoker="get_preferred_width_for_height" version="3.0"> <doc xml:space="preserve">Retrieves a widgetâs minimum and natural width if it would be given the specified @height. The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </virtual-method> <virtual-method name="get_request_mode" invoker="get_request_mode" version="3.0"> <doc xml:space="preserve">Gets whether the widget prefers a height-for-width layout or a width-for-height layout. #GtkBin widgets generally propagate the preference of their child, container widgets need to request something either in context of their children or in context of their allocation capabilities.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by @widget.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="grab_broken_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventGrabBroken" c:type="GdkEventGrabBroken*"/> </parameter> </parameters> </virtual-method> <virtual-method name="grab_focus" invoker="grab_focus"> <doc xml:space="preserve">Causes @widget to have the keyboard focus for the #GtkWindow it's inside. @widget must be a focusable widget, such as a #GtkEntry; something like #GtkFrame wonât work. More precisely, it must have the %GTK_CAN_FOCUS flag set. Use gtk_widget_set_can_focus() to modify that flag. The widget also needs to be realized and mapped. This is indicated by the related signals. Grabbing the focus immediately after creating the widget will likely fail and cause critical warnings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="grab_notify"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="was_grabbed" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="hide" invoker="hide"> <doc xml:space="preserve">Reverses the effects of gtk_widget_show(), causing the widget to be hidden (invisible to the user).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="hierarchy_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="previous_toplevel" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="key_press_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </virtual-method> <virtual-method name="key_release_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </virtual-method> <virtual-method name="keynav_failed" invoker="keynav_failed" version="2.12"> <doc xml:space="preserve">This function should be called whenever keyboard navigation within a single widget hits a boundary. The function emits the #GtkWidget::keynav-failed signal on the widget and its return value should be interpreted in a way similar to the return value of 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 gtk_widget_child_focus() on the widgetâs toplevel. The default ::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 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 #GtkEntry 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%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).</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">direction of focus movement</doc> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="leave_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventCrossing" c:type="GdkEventCrossing*"/> </parameter> </parameters> </virtual-method> <virtual-method name="map" invoker="map"> <doc xml:space="preserve">This function is only for use in widget implementations. Causes a widget to be mapped if it isnât already.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="map_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventAny" c:type="GdkEventAny*"/> </parameter> </parameters> </virtual-method> <virtual-method name="mnemonic_activate" invoker="mnemonic_activate"> <doc xml:space="preserve">Emits the #GtkWidget::mnemonic-activate signal.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal has been handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="group_cycling" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there are other widgets with the same mnemonic</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="motion_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventMotion" c:type="GdkEventMotion*"/> </parameter> </parameters> </virtual-method> <virtual-method name="move_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </virtual-method> <virtual-method name="parent_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="previous_parent" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <virtual-method name="popup_menu"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="property_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventProperty" c:type="GdkEventProperty*"/> </parameter> </parameters> </virtual-method> <virtual-method name="proximity_in_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventProximity" c:type="GdkEventProximity*"/> </parameter> </parameters> </virtual-method> <virtual-method name="proximity_out_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventProximity" c:type="GdkEventProximity*"/> </parameter> </parameters> </virtual-method> <virtual-method name="query_tooltip"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="keyboard_tooltip" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="tooltip" transfer-ownership="none"> <type name="Tooltip" c:type="GtkTooltip*"/> </parameter> </parameters> </virtual-method> <virtual-method name="queue_draw_region" invoker="queue_draw_region" version="3.0"> <doc xml:space="preserve">Invalidates the area of @widget defined by @region by calling gdk_window_invalidate_region() on the widgetâs window and all its child windows. Once the main loop becomes idle (after the current batch of events has been processed, roughly), the window will receive expose events for the union of all regions that have been invalidated. Normally you would only use this function in widget implementations. You might also use it to schedule a redraw of a #GtkDrawingArea or some portion thereof.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="region" transfer-ownership="none"> <doc xml:space="preserve">region to draw</doc> <type name="cairo.Region" c:type="const cairo_region_t*"/> </parameter> </parameters> </virtual-method> <virtual-method name="realize" invoker="realize"> <doc xml:space="preserve">Creates the GDK (windowing system) resources associated with a widget. For example, @widget->window will be created when a widget is realized. 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 gtk_widget_realize() 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 #GtkWidget::draw. Or simply g_signal_connect () to the #GtkWidget::realize signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="screen_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="previous_screen" transfer-ownership="none"> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </virtual-method> <virtual-method name="scroll_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventScroll" c:type="GdkEventScroll*"/> </parameter> </parameters> </virtual-method> <virtual-method name="selection_clear_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/> </parameter> </parameters> </virtual-method> <virtual-method name="selection_get"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="selection_data" transfer-ownership="none"> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="info" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="selection_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/> </parameter> </parameters> </virtual-method> <virtual-method name="selection_received"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="selection_data" transfer-ownership="none"> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </virtual-method> <virtual-method name="selection_request_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/> </parameter> </parameters> </virtual-method> <virtual-method name="show" invoker="show"> <doc xml:space="preserve">Flags a widget to be displayed. Any widget that isnât shown will not appear on the screen. If you want to show all the widgets in a container, itâs easier to call gtk_widget_show_all() on the container, instead of individually showing the widgets. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="show_all" invoker="show_all"> <doc xml:space="preserve">Recursively shows a widget, and any child widgets (if the widget is a container).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="show_help"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="help_type" transfer-ownership="none"> <type name="WidgetHelpType" c:type="GtkWidgetHelpType"/> </parameter> </parameters> </virtual-method> <virtual-method name="size_allocate" invoker="size_allocate"> <doc xml:space="preserve">This function is only used by #GtkContainer subclasses, to assign a size and position to their child widgets. In this function, the allocation may be adjusted. It will be forced to a 1x1 minimum size, and the adjust_size_allocation virtual method on the child will be used to adjust the allocation. Standard adjustments include removing the widgetâs margins, and applying the widgetâs #GtkWidget:halign and #GtkWidget:valign properties. For baseline support in containers you need to use gtk_widget_size_allocate_with_baseline() instead.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">position and size to be allocated to @widget</doc> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </virtual-method> <virtual-method name="state_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="previous_state" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> </parameters> </virtual-method> <virtual-method name="state_flags_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="previous_state_flags" transfer-ownership="none"> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> </parameters> </virtual-method> <virtual-method name="style_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="previous_style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> </parameters> </virtual-method> <virtual-method name="style_updated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="touch_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventTouch" c:type="GdkEventTouch*"/> </parameter> </parameters> </virtual-method> <virtual-method name="unmap" invoker="unmap"> <doc xml:space="preserve">This function is only for use in widget implementations. Causes a widget to be unmapped if itâs currently mapped.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="unmap_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventAny" c:type="GdkEventAny*"/> </parameter> </parameters> </virtual-method> <virtual-method name="unrealize" invoker="unrealize"> <doc xml:space="preserve">This function is only useful in widget implementations. Causes a widget to be unrealized (frees all GDK resources associated with the widget, such as @widget->window).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="visibility_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventVisibility" c:type="GdkEventVisibility*"/> </parameter> </parameters> </virtual-method> <virtual-method name="window_state_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventWindowState" c:type="GdkEventWindowState*"/> </parameter> </parameters> </virtual-method> <method name="activate" c:identifier="gtk_widget_activate"> <doc xml:space="preserve">For widgets that can be âactivatedâ (buttons, menu items, etc.) this function activates them. Activation is what happens when you press Enter on a widget during key navigation. If @widget isn't activatable, the function returns %FALSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget was activatable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs activatable</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="add_accelerator" c:identifier="gtk_widget_add_accelerator"> <doc xml:space="preserve">Installs an accelerator for this @widget in @accel_group that causes @accel_signal to be emitted if the accelerator is activated. The @accel_group needs to be added to the widgetâs toplevel via gtk_window_add_accel_group(), and the signal must be of type %G_SIGNAL_ACTION. Accelerators added through this function are not user changeable during runtime. If you want to support accelerators that can be changed by the user, use gtk_accel_map_add_entry() and gtk_widget_set_accel_path() or gtk_menu_item_set_accel_path() instead.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget to install an accelerator on</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="accel_signal" transfer-ownership="none"> <doc xml:space="preserve">widget signal to emit on accelerator activation</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">accel group for this widget, added to its toplevel</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">GDK keyval of the accelerator</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">modifier key combination of the accelerator</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="accel_flags" transfer-ownership="none"> <doc xml:space="preserve">flag accelerators, e.g. %GTK_ACCEL_VISIBLE</doc> <type name="AccelFlags" c:type="GtkAccelFlags"/> </parameter> </parameters> </method> <method name="add_device_events" c:identifier="gtk_widget_add_device_events" version="3.0"> <doc xml:space="preserve">Adds the device events in the bitfield @events to the event mask for @widget. See gtk_widget_set_device_events() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> <parameter name="events" transfer-ownership="none"> <doc xml:space="preserve">an event mask, see #GdkEventMask</doc> <type name="Gdk.EventMask" c:type="GdkEventMask"/> </parameter> </parameters> </method> <method name="add_events" c:identifier="gtk_widget_add_events"> <doc xml:space="preserve">Adds the events in the bitfield @events to the event mask for @widget. See gtk_widget_set_events() and the [input handling overview][event-masks] for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="events" transfer-ownership="none"> <doc xml:space="preserve">an event mask, see #GdkEventMask</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="add_mnemonic_label" c:identifier="gtk_widget_add_mnemonic_label" version="2.4"> <doc xml:space="preserve">Adds a widget to the list of mnemonic labels for this widget. (See 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, by using a connection to the #GtkWidget::destroy signal or a weak notifier.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget that acts as a mnemonic label for @widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="add_tick_callback" c:identifier="gtk_widget_add_tick_callback" version="3.8"> <doc xml:space="preserve">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 gtk_widget_queue_resize() or gtk_widget_queue_draw_area() yourself. gdk_frame_clock_get_frame_time() should generally be used for timing continuous animations and gdk_frame_timings_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 #GdkFrameClock::update signal of #GdkFrameClock, since you don't have to worry about when a #GdkFrameClock is assigned to a widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">an id for the connection of this callback. Remove the callback by passing it to gtk_widget_remove_tick_callback()</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">function to call for updating animations</doc> <type name="TickCallback" c:type="GtkTickCallback"/> </parameter> <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to @callback</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="notify" transfer-ownership="none" scope="async"> <doc xml:space="preserve">function to call to free @user_data when the callback is removed.</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="can_activate_accel" c:identifier="gtk_widget_can_activate_accel" version="2.4"> <doc xml:space="preserve">Determines whether an accelerator that activates the signal identified by @signal_id can currently be activated. This is done by emitting the #GtkWidget::can-activate-accel signal on @widget; if the signal isnât overridden by a handler or in a derived widget, then the default check is that the widget must be sensitive, and the widget and all its ancestors mapped.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the accelerator can be activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="signal_id" transfer-ownership="none"> <doc xml:space="preserve">the ID of a signal installed on @widget</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="child_focus" c:identifier="gtk_widget_child_focus"> <doc xml:space="preserve">This function is used by custom widget implementations; if you're writing an app, youâd use gtk_widget_grab_focus() to move the focus to a particular widget, and gtk_container_set_focus_chain() to change the focus tab order. So you may want to investigate those functions instead. gtk_widget_child_focus() is called by containers as the user moves around the window using keyboard shortcuts. @direction indicates what kind of motion is taking place (up, down, left, right, tab forward, tab backward). gtk_widget_child_focus() emits the #GtkWidget::focus signal; widgets override the default handler for this signal in order to implement appropriate focus behavior. The default ::focus handler 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. If returning %TRUE, widgets normally call gtk_widget_grab_focus() to place the focus accordingly; if returning %FALSE, they donât modify the current focus location.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if focus ended up inside @widget</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">direction of focus movement</doc> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </method> <method name="child_notify" c:identifier="gtk_widget_child_notify"> <doc xml:space="preserve">Emits a #GtkWidget::child-notify signal for the [child property][child-properties] @child_property on @widget. This is the analogue of g_object_notify() for child properties. Also see gtk_container_child_notify().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="child_property" transfer-ownership="none"> <doc xml:space="preserve">the name of a child property installed on the class of @widgetâs parent</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="class_path" c:identifier="gtk_widget_class_path" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Same as gtk_widget_path(), but always uses the name of a widgetâs type, never uses a custom name set with gtk_widget_set_name().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_path() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="path_length" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the length of the class path, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the class path as an allocated string, or %NULL</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="path_reversed" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the reverse class path as an allocated string, or %NULL</doc> <type name="utf8" c:type="gchar**"/> </parameter> </parameters> </method> <method name="compute_expand" c:identifier="gtk_widget_compute_expand"> <doc xml:space="preserve">Computes whether a container should give this widget extra space when possible. Containers should check this, rather than looking at gtk_widget_get_hexpand() or 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether widget tree rooted here should be expanded</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">expand direction</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </method> <method name="create_pango_context" c:identifier="gtk_widget_create_pango_context"> <doc xml:space="preserve">Creates a new #PangoContext with the appropriate font map, font options, font description, and base direction for drawing text for this widget. See also gtk_widget_get_pango_context().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the new #PangoContext</doc> <type name="Pango.Context" c:type="PangoContext*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="create_pango_layout" c:identifier="gtk_widget_create_pango_layout"> <doc xml:space="preserve">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 using the #GtkWidget::screen-changed signal on the widget.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the new #PangoLayout</doc> <type name="Pango.Layout" c:type="PangoLayout*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">text to set on the layout (can be %NULL)</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="destroy" c:identifier="gtk_widget_destroy"> <doc xml:space="preserve">Destroys a widget. When a widget is destroyed all references it holds on other objects will be released: - if the widget is inside a container, it will be removed from its parent - if the widget is a container, all its children will be destroyed, recursively - if the widget is a top level, it will be removed from the list of top level widgets that GTK+ maintains internally It's expected that all references held on the widget will also be released; you should connect to the #GtkWidget::destroy signal if you hold a reference to @widget and you wish to remove it when this function is called. It is not necessary to do so if you are implementing a #GtkContainer, as you'll be able to use the #GtkContainerClass.remove() virtual function for that. It's important to notice that gtk_widget_destroy() will only cause the @widget to be finalized if no additional references, acquired using g_object_ref(), are held on it. In case additional references are in place, the @widget will be in an "inert" state after calling this function; @widget will still point to valid memory, allowing you to release the references you hold, but you may not query the widget's own state. You should typically call this function on top level widgets, and rarely on child widgets. See also: gtk_container_remove()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="destroyed" c:identifier="gtk_widget_destroyed"> <doc xml:space="preserve">This function sets *@widget_pointer to %NULL if @widget_pointer != %NULL. Itâs intended to be used as a callback connected to the âdestroyâ signal of a widget. You connect gtk_widget_destroyed() as a signal handler, and pass the address of your widget variable as user data. Then when the widget is destroyed, the variable will be set to %NULL. Useful for example to avoid multiple copies of the same dialog.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="widget_pointer" direction="inout" caller-allocates="0" transfer-ownership="none"> <doc xml:space="preserve">address of a variable that contains @widget</doc> <type name="Widget" c:type="GtkWidget**"/> </parameter> </parameters> </method> <method name="device_is_shadowed" c:identifier="gtk_widget_device_is_shadowed" version="3.0"> <doc xml:space="preserve">Returns %TRUE if @device has been shadowed by a GTK+ device grab on another widget, so it would stop sending events to @widget. This may be used in the #GtkWidget::grab-notify signal to check for specific devices. See gtk_device_grab_add().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there is an ongoing grab on @device by another #GtkWidget than @widget.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> </parameters> </method> <method name="drag_begin" c:identifier="gtk_drag_begin" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">This function is equivalent to gtk_drag_begin_with_coordinates(), passing -1, -1 as coordinates.</doc> <doc-deprecated xml:space="preserve">Use gtk_drag_begin_with_coordinates() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the context for this drag</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the source widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">The targets (data formats) in which the source can provide the data</doc> <type name="TargetList" c:type="GtkTargetList*"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">A bitmask of the allowed drag actions for this drag</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The button the user clicked to start the drag</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The event that triggered the start of the drag, or %NULL if none can be obtained.</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </method> <method name="drag_begin_with_coordinates" c:identifier="gtk_drag_begin_with_coordinates" version="3.10"> <doc xml:space="preserve">Initiates a drag on the source side. The function only needs to be used when the application is starting drags itself, and is not needed when gtk_drag_source_set() is used. The @event is used to retrieve the timestamp that will be used internally to grab the pointer. If @event is %NULL, then %GDK_CURRENT_TIME will be used. However, you should try to pass a real event in all cases, since that can be used to get information about the drag. Generally there are three cases when you want to start a drag by hand by calling this function: 1. During a #GtkWidget::button-press-event handler, if you want to start a drag immediately when the user presses the mouse button. Pass the @event that you have in your #GtkWidget::button-press-event handler. 2. During a #GtkWidget::motion-notify-event handler, if you want to start a drag when the mouse moves past a certain threshold distance after a button-press. Pass the @event that you have in your #GtkWidget::motion-notify-event handler. 3. During a timeout handler, if you want to start a drag after the mouse button is held down for some time. Try to save the last event that you got from the mouse, using gdk_event_copy(), and pass it to this function (remember to free the event with gdk_event_free() when you are done). If you really cannot pass a real event, pass %NULL instead.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the context for this drag</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the source widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">The targets (data formats) in which the source can provide the data</doc> <type name="TargetList" c:type="GtkTargetList*"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">A bitmask of the allowed drag actions for this drag</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">The button the user clicked to start the drag</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="event" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The event that triggered the start of the drag, or %NULL if none can be obtained.</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">The initial x coordinate to start dragging from, in the coordinate space of @widget. If -1 is passed, the coordinates are retrieved from @event or the current pointer position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">The initial y coordinate to start dragging from, in the coordinate space of @widget. If -1 is passed, the coordinates are retrieved from @event or the current pointer position</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="drag_check_threshold" c:identifier="gtk_drag_check_threshold"> <doc xml:space="preserve">Checks to see if a mouse drag starting at (@start_x, @start_y) and ending at (@current_x, @current_y) has passed the GTK+ drag threshold, and thus should trigger the beginning of a drag-and-drop operation.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the drag threshold has been passed.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="start_x" transfer-ownership="none"> <doc xml:space="preserve">X coordinate of start of drag</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="start_y" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate of start of drag</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="current_x" transfer-ownership="none"> <doc xml:space="preserve">current X coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="current_y" transfer-ownership="none"> <doc xml:space="preserve">current Y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="drag_dest_add_image_targets" c:identifier="gtk_drag_dest_add_image_targets" version="2.6"> <doc xml:space="preserve">Add the image targets supported by #GtkSelectionData to the target list of the drag destination. The targets are added with @info = 0. If you need another value, use gtk_target_list_add_image_targets() and gtk_drag_dest_set_target_list().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs a drag destination</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_dest_add_text_targets" c:identifier="gtk_drag_dest_add_text_targets" version="2.6"> <doc xml:space="preserve">Add the text targets supported by #GtkSelectionData to the target list of the drag destination. The targets are added with @info = 0. If you need another value, use gtk_target_list_add_text_targets() and gtk_drag_dest_set_target_list().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs a drag destination</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_dest_add_uri_targets" c:identifier="gtk_drag_dest_add_uri_targets" version="2.6"> <doc xml:space="preserve">Add the URI targets supported by #GtkSelectionData to the target list of the drag destination. The targets are added with @info = 0. If you need another value, use gtk_target_list_add_uri_targets() and gtk_drag_dest_set_target_list().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs a drag destination</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_dest_find_target" c:identifier="gtk_drag_dest_find_target"> <doc xml:space="preserve">Looks for a match between the supported targets of @context and the @dest_target_list, returning the first matching target, otherwise returning %GDK_NONE. @dest_target_list should usually be the return value from gtk_drag_dest_get_target_list(), but some widgets may have different valid targets for different parts of the widget; in that case, they will have to implement a drag_motion handler that passes the correct target list to this function.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">first target that the source offers and the dest can accept, or %GDK_NONE</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">drag destination widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">drag context</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="target_list" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">list of droppable targets, or %NULL to use gtk_drag_dest_get_target_list (@widget).</doc> <type name="TargetList" c:type="GtkTargetList*"/> </parameter> </parameters> </method> <method name="drag_dest_get_target_list" c:identifier="gtk_drag_dest_get_target_list"> <doc xml:space="preserve">Returns the list of targets this widget can accept from drag-and-drop.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #GtkTargetList, or %NULL if none</doc> <type name="TargetList" c:type="GtkTargetList*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_dest_get_track_motion" c:identifier="gtk_drag_dest_get_track_motion" version="2.10"> <doc xml:space="preserve">Returns whether the widget has been configured to always emit #GtkWidget::drag-motion signals.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget always emits #GtkWidget::drag-motion events</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs a drag destination</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_dest_set" c:identifier="gtk_drag_dest_set"> <doc xml:space="preserve">Sets a widget as a potential drop destination, and adds default behaviors. The default behaviors listed in @flags have an effect similar to installing default handlers for the widgetâs drag-and-drop signals (#GtkWidget::drag-motion, #GtkWidget::drag-drop, ...). They all exist for convenience. When passing #GTK_DEST_DEFAULT_ALL for instance it is sufficient to connect to the widgetâs #GtkWidget::drag-data-received signal to get primitive, but consistent drag-and-drop support. Things become more complicated when you try to preview the dragged data, as described in the documentation for #GtkWidget::drag-motion. The default behaviors described by @flags make some assumptions, that can conflict with your own signal handlers. For instance #GTK_DEST_DEFAULT_DROP causes invokations of gdk_drag_status() in the context of #GtkWidget::drag-motion, and invokations of gtk_drag_finish() in #GtkWidget::drag-data-received. Especially the later is dramatic, when your own #GtkWidget::drag-motion handler calls gtk_drag_get_data() to inspect the dragged data. Thereâs no way to set a default action here, you can use the #GtkWidget::drag-motion callback for that. Hereâs an example which selects the action to use depending on whether the control key is pressed or not: |[<!-- language="C" --> static void drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time) { GdkModifierType mask; gdk_window_get_pointer (gtk_widget_get_window (widget), NULL, NULL, &mask); if (mask & GDK_CONTROL_MASK) gdk_drag_status (context, GDK_ACTION_COPY, time); else gdk_drag_status (context, GDK_ACTION_MOVE, time); } ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">which types of default drag behavior to use</doc> <type name="DestDefaults" c:type="GtkDestDefaults"/> </parameter> <parameter name="targets" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a pointer to an array of #GtkTargetEntrys indicating the drop types that this @widget will accept, or %NULL. Later you can access the list with gtk_drag_dest_get_target_list() and gtk_drag_dest_find_target().</doc> <array length="2" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the number of entries in @targets</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">a bitmask of possible actions for a drop onto this @widget.</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> </parameters> </method> <method name="drag_dest_set_proxy" c:identifier="gtk_drag_dest_set_proxy" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Sets this widget as a proxy for drops to another window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="proxy_window" transfer-ownership="none"> <doc xml:space="preserve">the window to which to forward drag events</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> <parameter name="protocol" transfer-ownership="none"> <doc xml:space="preserve">the drag protocol which the @proxy_window accepts (You can use gdk_drag_get_protocol() to determine this)</doc> <type name="Gdk.DragProtocol" c:type="GdkDragProtocol"/> </parameter> <parameter name="use_coordinates" transfer-ownership="none"> <doc xml:space="preserve">If %TRUE, send the same coordinates to the destination, because it is an embedded subwindow.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="drag_dest_set_target_list" c:identifier="gtk_drag_dest_set_target_list"> <doc xml:space="preserve">Sets the target types that this widget can accept from drag-and-drop. The widget must first be made into a drag destination with gtk_drag_dest_set().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs a drag destination</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="target_list" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">list of droppable targets, or %NULL for none</doc> <type name="TargetList" c:type="GtkTargetList*"/> </parameter> </parameters> </method> <method name="drag_dest_set_track_motion" c:identifier="gtk_drag_dest_set_track_motion" version="2.10"> <doc xml:space="preserve">Tells the widget to emit #GtkWidget::drag-motion and #GtkWidget::drag-leave events regardless of the targets and the %GTK_DEST_DEFAULT_MOTION flag. This may be used when a widget wants to do generic actions regardless of the targets that the source offers.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs a drag destination</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="track_motion" transfer-ownership="none"> <doc xml:space="preserve">whether to accept all targets</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="drag_dest_unset" c:identifier="gtk_drag_dest_unset"> <doc xml:space="preserve">Clears information about a drop destination set with gtk_drag_dest_set(). The widget will no longer receive notification of drags.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_get_data" c:identifier="gtk_drag_get_data"> <doc xml:space="preserve">Gets the data associated with a drag. When the data is received or the retrieval fails, GTK+ will emit a #GtkWidget::drag-data-received signal. Failure of the retrieval is indicated by the length field of the @selection_data signal parameter being negative. However, when gtk_drag_get_data() is called implicitely because the %GTK_DEST_DEFAULT_DROP was set, then the widget will not receive notification of failed drops.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget that will receive the #GtkWidget::drag-data-received signal</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">the target (form of the data) to retrieve</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="time_" transfer-ownership="none"> <doc xml:space="preserve">a timestamp for retrieving the data. This will generally be the time received in a #GtkWidget::drag-motion or #GtkWidget::drag-drop signal</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </method> <method name="drag_highlight" c:identifier="gtk_drag_highlight"> <doc xml:space="preserve">Highlights a widget as a currently hovered drop target. To end the highlight, call gtk_drag_unhighlight(). GTK+ calls this automatically if %GTK_DEST_DEFAULT_HIGHLIGHT is set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a widget to highlight</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_source_add_image_targets" c:identifier="gtk_drag_source_add_image_targets" version="2.6"> <doc xml:space="preserve">Add the writable image targets supported by #GtkSelectionData to the target list of the drag source. The targets are added with @info = 0. If you need another value, use gtk_target_list_add_image_targets() and gtk_drag_source_set_target_list().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs is a drag source</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_source_add_text_targets" c:identifier="gtk_drag_source_add_text_targets" version="2.6"> <doc xml:space="preserve">Add the text targets supported by #GtkSelectionData to the target list of the drag source. The targets are added with @info = 0. If you need another value, use gtk_target_list_add_text_targets() and gtk_drag_source_set_target_list().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs is a drag source</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_source_add_uri_targets" c:identifier="gtk_drag_source_add_uri_targets" version="2.6"> <doc xml:space="preserve">Add the URI targets supported by #GtkSelectionData to the target list of the drag source. The targets are added with @info = 0. If you need another value, use gtk_target_list_add_uri_targets() and gtk_drag_source_set_target_list().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs is a drag source</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_source_get_target_list" c:identifier="gtk_drag_source_get_target_list" version="2.4"> <doc xml:space="preserve">Gets the list of targets this widget can provide for drag-and-drop.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #GtkTargetList, or %NULL if none</doc> <type name="TargetList" c:type="GtkTargetList*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_source_set" c:identifier="gtk_drag_source_set"> <doc xml:space="preserve">Sets up a widget so that GTK+ will start a drag operation when the user clicks and drags on the widget. The widget must have a window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="start_button_mask" transfer-ownership="none"> <doc xml:space="preserve">the bitmask of buttons that can start the drag</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="targets" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the table of targets that the drag will support, may be %NULL</doc> <array length="2" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the number of items in @targets</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="actions" transfer-ownership="none"> <doc xml:space="preserve">the bitmask of possible actions for a drag from this widget</doc> <type name="Gdk.DragAction" c:type="GdkDragAction"/> </parameter> </parameters> </method> <method name="drag_source_set_icon_gicon" c:identifier="gtk_drag_source_set_icon_gicon" version="3.2"> <doc xml:space="preserve">Sets the icon that will be used for drags from a particular source to @icon. See the docs for #GtkIconTheme for more details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">A #GIcon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> </parameters> </method> <method name="drag_source_set_icon_name" c:identifier="gtk_drag_source_set_icon_name" version="2.8"> <doc xml:space="preserve">Sets the icon that will be used for drags from a particular source to a themed icon. See the docs for #GtkIconTheme for more details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">name of icon to use</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="drag_source_set_icon_pixbuf" c:identifier="gtk_drag_source_set_icon_pixbuf"> <doc xml:space="preserve">Sets the icon that will be used for drags from a particular widget from a #GdkPixbuf. GTK+ retains a reference for @pixbuf and will release it when it is no longer needed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">the #GdkPixbuf for the drag icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="drag_source_set_icon_stock" c:identifier="gtk_drag_source_set_icon_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the icon that will be used for drags from a particular source to a stock icon.</doc> <doc-deprecated xml:space="preserve">Use gtk_drag_source_set_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the ID of the stock icon to use</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="drag_source_set_target_list" c:identifier="gtk_drag_source_set_target_list" version="2.4"> <doc xml:space="preserve">Changes the target types that this widget offers for drag-and-drop. The widget must first be made into a drag source with gtk_drag_source_set().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget thatâs a drag source</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="target_list" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">list of draggable targets, or %NULL for none</doc> <type name="TargetList" c:type="GtkTargetList*"/> </parameter> </parameters> </method> <method name="drag_source_unset" c:identifier="gtk_drag_source_unset"> <doc xml:space="preserve">Undoes the effects of gtk_drag_source_set().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="drag_unhighlight" c:identifier="gtk_drag_unhighlight"> <doc xml:space="preserve">Removes a highlight set by gtk_drag_highlight() from a widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a widget to remove the highlight from</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="draw" c:identifier="gtk_widget_draw" version="3.0"> <doc xml:space="preserve">Draws @widget to @cr. The top left corner of the widget will be drawn to the currently set origin point of @cr. You should pass a cairo context as @cr argument that is in an original state. Otherwise the resulting drawing is undefined. For example changing the operator using cairo_set_operator() or the line width using cairo_set_line_width() might have unwanted side effects. You may however change the contextâs transform matrix - like with cairo_scale(), cairo_translate() or cairo_set_matrix() and clip region with cairo_clip() prior to calling this function. Also, it is fine to modify the context with cairo_save() and cairo_push_group() prior to calling this function. Note that special-purpose widgets may contain special code for rendering to the screen and might appear differently on screen and when rendered using gtk_widget_draw().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to draw. It must be drawable (see gtk_widget_is_drawable()) and a size must have been allocated.</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a cairo context to draw to</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </method> <method name="ensure_style" c:identifier="gtk_widget_ensure_style" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Ensures that @widget has a style (@widget->style). Not a very useful function; most of the time, if you want the style, the widget is realized, and realized widgets are guaranteed to have a style already.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="error_bell" c:identifier="gtk_widget_error_bell" version="2.12"> <doc xml:space="preserve">Notifies the user about an input-related error on this widget. If the #GtkSettings:gtk-error-bell setting is %TRUE, it calls gdk_window_beep(), otherwise it does nothing. Note that the effect of gdk_window_beep() can be configured in many ways, depending on the windowing backend and the desktop environment or window manager that is used.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="event" c:identifier="gtk_widget_event"> <doc xml:space="preserve">Rarely-used function. This function is used to emit the event signals on a widget (those signals should never be emitted without using this function to do so). If you want to synthesize an event though, donât use this function; instead, use gtk_main_do_event() so the event will behave as if it were in the event queue. Donât synthesize expose events; instead, use gdk_window_invalidate_rect() to invalidate a region of the window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">return from the event signal emission (%TRUE if the event was handled)</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </method> <method name="freeze_child_notify" c:identifier="gtk_widget_freeze_child_notify"> <doc xml:space="preserve">Stops emission of #GtkWidget::child-notify signals on @widget. The signals are queued until gtk_widget_thaw_child_notify() is called on @widget. This is the analogue of g_object_freeze_notify() for child properties.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_accessible" c:identifier="gtk_widget_get_accessible"> <doc xml:space="preserve">Returns the accessible object that describes the widget to an assistive technology. If accessibility support is not available, this #AtkObject instance may be a no-op. Likewise, if no class-specific #AtkObject implementation is available for the widget instance in question, it will inherit an #AtkObject implementation from the first ancestor class for which such an implementation is defined. The documentation of the [ATK](http://developer.gnome.org/atk/stable/) library contains more information about accessible objects and their uses.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #AtkObject associated with @widget</doc> <type name="Atk.Object" c:type="AtkObject*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_action_group" c:identifier="gtk_widget_get_action_group" version="3.16"> <doc xml:space="preserve">Retrieves the #GActionGroup that was registered using @prefix. The resulting #GActionGroup may have been registered to @widget or any #GtkWidget in its ancestry. If no action group was found matching @prefix, then %NULL is returned.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #GActionGroup or %NULL.</doc> <type name="Gio.ActionGroup" c:type="GActionGroup*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="prefix" transfer-ownership="none"> <doc xml:space="preserve">The âprefixâ of the action group.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_allocated_baseline" c:identifier="gtk_widget_get_allocated_baseline" version="3.10"> <doc xml:space="preserve">Returns the baseline that has currently been allocated to @widget. This function is intended to be used when implementing handlers for the #GtkWidget::draw function, and when allocating child widgets in #GtkWidget::size_allocate.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the baseline of the @widget, or -1 if none</doc> <type name="gint" c:type="int"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to query</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_allocated_height" c:identifier="gtk_widget_get_allocated_height"> <doc xml:space="preserve">Returns the height that has currently been allocated to @widget. This function is intended to be used when implementing handlers for the #GtkWidget::draw function.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the height of the @widget</doc> <type name="gint" c:type="int"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to query</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_allocated_size" c:identifier="gtk_widget_get_allocated_size" version="3.20"> <doc xml:space="preserve">Retrieves the widgetâs allocated size. This function returns the last values passed to gtk_widget_size_allocate_with_baseline(). The value differs from the size returned in gtk_widget_get_allocation() in that functions like gtk_widget_set_halign() can adjust the allocation, but not the value returned by this function. If a widget is not visible, its allocated size is 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="allocation" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkAllocation to copy to</doc> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> <parameter name="baseline" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">a pointer to an integer to copy to</doc> <type name="gint" c:type="int*"/> </parameter> </parameters> </method> <method name="get_allocated_width" c:identifier="gtk_widget_get_allocated_width"> <doc xml:space="preserve">Returns the width that has currently been allocated to @widget. This function is intended to be used when implementing handlers for the #GtkWidget::draw function.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the width of the @widget</doc> <type name="gint" c:type="int"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to query</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_allocation" c:identifier="gtk_widget_get_allocation" version="2.18"> <doc xml:space="preserve">Retrieves the widgetâs allocation. Note, when implementing a #GtkContainer: a widgetâs allocation will be its âadjustedâ allocation, that is, the widgetâs parent container typically calls 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. 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 gtk_widget_size_allocate() allocation, however. So a #GtkContainer is guaranteed that its children stay inside the assigned bounds, but not that they have exactly the bounds the container assigned. There is no way to get the original allocation assigned by gtk_widget_size_allocate(), since it isnât stored; if a container implementation needs that information it will have to track it itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="allocation" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkAllocation to copy to</doc> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </method> <method name="get_ancestor" c:identifier="gtk_widget_get_ancestor"> <doc xml:space="preserve">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. See note about checking for a toplevel #GtkWindow in the docs for gtk_widget_get_toplevel(). Note that unlike gtk_widget_is_ancestor(), gtk_widget_get_ancestor() considers @widget to be an ancestor of itself.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the ancestor widget, or %NULL if not found</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="widget_type" transfer-ownership="none"> <doc xml:space="preserve">ancestor type</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </method> <method name="get_app_paintable" c:identifier="gtk_widget_get_app_paintable" version="2.18"> <doc xml:space="preserve">Determines whether the application intends to draw on the widget in an #GtkWidget::draw handler. See gtk_widget_set_app_paintable()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is app paintable</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_can_default" c:identifier="gtk_widget_get_can_default" version="2.18"> <doc xml:space="preserve">Determines whether @widget can be a default widget. See gtk_widget_set_can_default().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget can be a default widget, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_can_focus" c:identifier="gtk_widget_get_can_focus" version="2.18"> <doc xml:space="preserve">Determines whether @widget can own the input focus. See gtk_widget_set_can_focus().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget can own the input focus, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_child_requisition" c:identifier="gtk_widget_get_child_requisition" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">This function is only for use in widget implementations. Obtains @widget->requisition, unless someone has forced a particular geometry on the widget (e.g. with gtk_widget_set_size_request()), in which case it returns that geometry instead of the widget's requisition. This function differs from gtk_widget_size_request() in that it retrieves the last size request value from @widget->requisition, while gtk_widget_size_request() actually calls the "size_request" method on @widget to compute the size request and fill in @widget->requisition, and only then returns @widget->requisition. Because this function does not call the âsize_requestâ method, it can only be used when you know that @widget->requisition is up-to-date, that is, gtk_widget_size_request() has been called since the last time a resize was queued. In general, only container implementations have this information; applications should use gtk_widget_size_request().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_preferred_size() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="requisition" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRequisition to be filled in</doc> <type name="Requisition" c:type="GtkRequisition*"/> </parameter> </parameters> </method> <method name="get_child_visible" c:identifier="gtk_widget_get_child_visible"> <doc xml:space="preserve">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 never should be called by an application.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is mapped with the parent.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_clip" c:identifier="gtk_widget_get_clip" version="3.14"> <doc xml:space="preserve">Retrieves the widgetâs clip area. The clip area is the area in which all of @widget's drawing will happen. Other toolkits call it the bounding box. Historically, in GTK+ the clip area has been equal to the allocation retrieved via gtk_widget_get_allocation().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="clip" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkAllocation to copy to</doc> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </method> <method name="get_clipboard" c:identifier="gtk_widget_get_clipboard" version="2.2"> <doc xml:space="preserve">Returns the clipboard object for the given selection to be used with @widget. @widget must have a #GdkDisplay associated with it, so must be attached to a toplevel window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the appropriate clipboard object. If no clipboard already exists, a new one will be created. Once a clipboard object has been created, it is persistent for all time.</doc> <type name="Clipboard" c:type="GtkClipboard*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">a #GdkAtom which identifies the clipboard to use. %GDK_SELECTION_CLIPBOARD gives the default clipboard. Another common value is %GDK_SELECTION_PRIMARY, which gives the primary X selection.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </method> <method name="get_composite_name" c:identifier="gtk_widget_get_composite_name" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains the composite name of a widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_class_set_template(), or donât use this API at all.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">the composite name of @widget, or %NULL if @widget is not a composite child. The string should be freed when it is no longer needed.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_device_enabled" c:identifier="gtk_widget_get_device_enabled" version="3.0"> <doc xml:space="preserve">Returns whether @device can interact with @widget and its children. See gtk_widget_set_device_enabled().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE is @device is enabled for @widget</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> </parameters> </method> <method name="get_device_events" c:identifier="gtk_widget_get_device_events" version="3.0"> <doc xml:space="preserve">Returns the events mask for the widget corresponding to an specific device. These are the events that the widget will receive when @device operates on it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">device event mask for @widget</doc> <type name="Gdk.EventMask" c:type="GdkEventMask"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> </parameters> </method> <method name="get_direction" c:identifier="gtk_widget_get_direction"> <doc xml:space="preserve">Gets the reading direction for a particular widget. See gtk_widget_set_direction().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the reading direction for the widget.</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_display" c:identifier="gtk_widget_get_display" version="2.2"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkDisplay for the toplevel for this widget.</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_double_buffered" c:identifier="gtk_widget_get_double_buffered" version="2.18"> <doc xml:space="preserve">Determines whether the widget is double buffered. See gtk_widget_set_double_buffered()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is double buffered</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_events" c:identifier="gtk_widget_get_events"> <doc xml:space="preserve">Returns the event mask (see #GdkEventMask) for the widget. These are the events that the widget will receive. Note: Internally, the widget event mask will be the logical OR of the event mask set through gtk_widget_set_events() or gtk_widget_add_events(), and the event mask necessary to cater for every #GtkEventController created for the widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">event mask for @widget</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_focus_on_click" c:identifier="gtk_widget_get_focus_on_click" version="3.20"> <doc xml:space="preserve">Returns whether the widget should grab focus when it is clicked with the mouse. See gtk_widget_set_focus_on_click().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget should grab focus when it is clicked with the mouse.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_font_map" c:identifier="gtk_widget_get_font_map" version="3.18"> <doc xml:space="preserve">Gets the font map that has been set with gtk_widget_set_font_map().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A #PangoFontMap, or %NULL</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_font_options" c:identifier="gtk_widget_get_font_options" version="3.18"> <doc xml:space="preserve">Returns the #cairo_font_options_t used for Pango rendering. When not set, the defaults font options for the #GdkScreen will be used.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the #cairo_font_options_t or %NULL if not set</doc> <type name="cairo.FontOptions" c:type="const cairo_font_options_t*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_frame_clock" c:identifier="gtk_widget_get_frame_clock" version="3.8"> <doc xml:space="preserve">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 gdk_frame_clock_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 gdk_frame_clock_get_frame_time(), and then update the animation by calling gdk_frame_clock_get_frame_time() again during each repaint. gdk_frame_clock_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 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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GdkFrameClock, or %NULL if widget is unrealized</doc> <type name="Gdk.FrameClock" c:type="GdkFrameClock*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_halign" c:identifier="gtk_widget_get_halign"> <doc xml:space="preserve">Gets the value of the #GtkWidget:halign property. For backwards compatibility reasons this method will never return %GTK_ALIGN_BASELINE, but instead it will convert it to %GTK_ALIGN_FILL. Baselines are not supported for horizontal alignment.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the horizontal alignment of @widget</doc> <type name="Align" c:type="GtkAlign"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_has_tooltip" c:identifier="gtk_widget_get_has_tooltip" version="2.12"> <doc xml:space="preserve">Returns the current value of the has-tooltip property. See #GtkWidget:has-tooltip for more information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">current value of has-tooltip on @widget.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_has_window" c:identifier="gtk_widget_get_has_window" version="2.18"> <doc xml:space="preserve">Determines whether @widget has a #GdkWindow of its own. See gtk_widget_set_has_window().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget has a window, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_hexpand" c:identifier="gtk_widget_get_hexpand"> <doc xml:space="preserve">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 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether hexpand flag is set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_hexpand_set" c:identifier="gtk_widget_get_hexpand_set"> <doc xml:space="preserve">Gets whether gtk_widget_set_hexpand() has been used to explicitly set the expand flag on this widget. 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether hexpand has been explicitly set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_mapped" c:identifier="gtk_widget_get_mapped" version="2.20"> <doc xml:space="preserve">Whether the widget is mapped.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is mapped, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_margin_bottom" c:identifier="gtk_widget_get_margin_bottom" version="3.0"> <doc xml:space="preserve">Gets the value of the #GtkWidget:margin-bottom property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The bottom margin of @widget</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_margin_end" c:identifier="gtk_widget_get_margin_end" version="3.12"> <doc xml:space="preserve">Gets the value of the #GtkWidget:margin-end property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The end margin of @widget</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_margin_left" c:identifier="gtk_widget_get_margin_left" version="3.0" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Gets the value of the #GtkWidget:margin-left property.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_margin_start() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">The left margin of @widget</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_margin_right" c:identifier="gtk_widget_get_margin_right" version="3.0" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Gets the value of the #GtkWidget:margin-right property.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_margin_end() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">The right margin of @widget</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_margin_start" c:identifier="gtk_widget_get_margin_start" version="3.12"> <doc xml:space="preserve">Gets the value of the #GtkWidget:margin-start property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The start margin of @widget</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_margin_top" c:identifier="gtk_widget_get_margin_top" version="3.0"> <doc xml:space="preserve">Gets the value of the #GtkWidget:margin-top property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The top margin of @widget</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_modifier_mask" c:identifier="gtk_widget_get_modifier_mask" version="3.4"> <doc xml:space="preserve">Returns the modifier mask the @widgetâs windowing system backend uses for a particular purpose. See gdk_keymap_get_modifier_mask().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the modifier mask used for @intent.</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="intent" transfer-ownership="none"> <doc xml:space="preserve">the use case for the modifier mask</doc> <type name="Gdk.ModifierIntent" c:type="GdkModifierIntent"/> </parameter> </parameters> </method> <method name="get_modifier_style" c:identifier="gtk_widget_get_modifier_style" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Returns the current modifier style for the widget. (As set by gtk_widget_modify_style().) If no style has previously set, a new #GtkRcStyle will be created with all values unset, and set as the modifier style for the widget. If you make changes to this rc style, you must call gtk_widget_modify_style(), passing in the returned rc style, to make sure that your changes take effect. Caution: passing the style back to gtk_widget_modify_style() will normally end up destroying it, because gtk_widget_modify_style() copies the passed-in style and sets the copy as the new modifier style, thus dropping any reference to the old modifier style. Add a reference to the modifier style if you want to keep it alive.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext with a custom #GtkStyleProvider instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the modifier style for the widget. This rc style is owned by the widget. If you want to keep a pointer to value this around, you must add a refcount using g_object_ref().</doc> <type name="RcStyle" c:type="GtkRcStyle*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_name" c:identifier="gtk_widget_get_name"> <doc xml:space="preserve">Retrieves the name of a widget. See gtk_widget_set_name() for the significance of widget names.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">name of the widget. This string is owned by GTK+ and should not be modified or freed</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_no_show_all" c:identifier="gtk_widget_get_no_show_all" version="2.4"> <doc xml:space="preserve">Returns the current value of the #GtkWidget:no-show-all property, which determines whether calls to gtk_widget_show_all() will affect this widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current value of the âno-show-allâ property.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_opacity" c:identifier="gtk_widget_get_opacity" version="3.8"> <doc xml:space="preserve">Fetches the requested opacity for this widget. See gtk_widget_set_opacity().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the requested opacity for this widget.</doc> <type name="gdouble" c:type="double"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_pango_context" c:identifier="gtk_widget_get_pango_context"> <doc xml:space="preserve">Gets a #PangoContext with the appropriate font map, font description, and base direction for this widget. Unlike the context returned by 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 using the #GtkWidget::screen-changed signal on the widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #PangoContext for the widget.</doc> <type name="Pango.Context" c:type="PangoContext*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_parent" c:identifier="gtk_widget_get_parent"> <doc xml:space="preserve">Returns the parent container of @widget.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the parent container of @widget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_parent_window" c:identifier="gtk_widget_get_parent_window"> <doc xml:space="preserve">Gets @widgetâs parent window, or %NULL if it does not have one.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the parent window of @widget, or %NULL if it does not have a parent window.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget.</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_path" c:identifier="gtk_widget_get_path"> <doc xml:space="preserve">Returns the #GtkWidgetPath representing @widget, if the widget is not connected to a toplevel widget, a partial path will be created.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkWidgetPath representing @widget</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_pointer" c:identifier="gtk_widget_get_pointer" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Obtains the location of the mouse pointer in widget coordinates. Widget coordinates are a bit odd; for historical reasons, they are defined as @widget->window coordinates for widgets that return %TRUE for gtk_widget_get_has_window(); and are relative to @widget->allocation.x, @widget->allocation.y otherwise.</doc> <doc-deprecated xml:space="preserve">Use gdk_window_get_device_position() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the X coordinate, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for the Y coordinate, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_height" c:identifier="gtk_widget_get_preferred_height" version="3.0"> <doc xml:space="preserve">Retrieves a widgetâs initial minimum and natural height. This call is specific to width-for-height requests. The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_height_and_baseline_for_width" c:identifier="gtk_widget_get_preferred_height_and_baseline_for_width" version="3.10"> <doc xml:space="preserve">Retrieves a widgetâs minimum and natural height and the corresponding baselines if it would be given the specified @width, or the default height if @width is -1. The baselines may be -1 which means that no baseline is requested for this widget. The returned request will be modified by the GtkWidgetClass::adjust_size_request and GtkWidgetClass::adjust_baseline_request virtual methods and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width which is available for allocation, or -1 if none</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="minimum_baseline" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the baseline for the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_baseline" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the baseline for the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_height_for_width" c:identifier="gtk_widget_get_preferred_height_for_width" version="3.0"> <doc xml:space="preserve">Retrieves a widgetâs minimum and natural height if it would be given the specified @width. The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_size" c:identifier="gtk_widget_get_preferred_size" version="3.0"> <doc xml:space="preserve">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 GtkLayout. 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 gtk_widget_get_preferred_height_and_baseline_for_width() if you want to support baseline alignment.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="minimum_size" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum size, or %NULL</doc> <type name="Requisition" c:type="GtkRequisition*"/> </parameter> <parameter name="natural_size" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural size, or %NULL</doc> <type name="Requisition" c:type="GtkRequisition*"/> </parameter> </parameters> </method> <method name="get_preferred_width" c:identifier="gtk_widget_get_preferred_width" version="3.0"> <doc xml:space="preserve">Retrieves a widgetâs initial minimum and natural width. This call is specific to height-for-width requests. The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_preferred_width_for_height" c:identifier="gtk_widget_get_preferred_width_for_height" version="3.0"> <doc xml:space="preserve">Retrieves a widgetâs minimum and natural width if it would be given the specified @height. The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any #GtkSizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_realized" c:identifier="gtk_widget_get_realized" version="2.20"> <doc xml:space="preserve">Determines whether @widget is realized.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget is realized, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_receives_default" c:identifier="gtk_widget_get_receives_default" version="2.18"> <doc xml:space="preserve">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 gtk_widget_set_receives_default().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget acts as the default widget when focused, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_request_mode" c:identifier="gtk_widget_get_request_mode" version="3.0"> <doc xml:space="preserve">Gets whether the widget prefers a height-for-width layout or a width-for-height layout. #GtkBin widgets generally propagate the preference of their child, container widgets need to request something either in context of their children or in context of their allocation capabilities.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by @widget.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_requisition" c:identifier="gtk_widget_get_requisition" version="2.20" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Retrieves the widgetâs requisition. This function should only be used by widget implementations in order to figure whether the widgetâs requisition has actually changed after some internal state change (so that they can call gtk_widget_queue_resize() instead of gtk_widget_queue_draw()). Normally, gtk_widget_size_request() should be used.</doc> <doc-deprecated xml:space="preserve">The #GtkRequisition cache on the widget was removed, If you need to cache sizes across requests and allocations, add an explicit cache to the widget in question instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="requisition" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkRequisition to copy to</doc> <type name="Requisition" c:type="GtkRequisition*"/> </parameter> </parameters> </method> <method name="get_root_window" c:identifier="gtk_widget_get_root_window" version="2.2" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Get the root window where this widget is located. This function can only be called after the widget has been added to a widget hierarchy with #GtkWindow at the top. The root window is useful for such purposes as creating a popup #GdkWindow associated with the window. 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.</doc> <doc-deprecated xml:space="preserve">Use gdk_screen_get_root_window() instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkWindow root window for the toplevel for this widget.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_scale_factor" c:identifier="gtk_widget_get_scale_factor" version="3.10"> <doc xml:space="preserve">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 gdk_window_get_scale_factor().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the scale factor for @widget</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_screen" c:identifier="gtk_widget_get_screen" version="2.2"> <doc xml:space="preserve">Get the #GdkScreen from 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 screen specific resources when a widget has been realized, and you should free those resources when the widget is unrealized.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GdkScreen for the toplevel for this widget.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_sensitive" c:identifier="gtk_widget_get_sensitive" version="2.18"> <doc xml:space="preserve">Returns the widgetâs sensitivity (in the sense of returning the value that has been set using gtk_widget_set_sensitive()). The effective sensitivity of a widget is however determined by both its own and its parent widgetâs sensitivity. See gtk_widget_is_sensitive().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is sensitive</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_settings" c:identifier="gtk_widget_get_settings"> <doc xml:space="preserve">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 #GdkScreen.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the relevant #GtkSettings object</doc> <type name="Settings" c:type="GtkSettings*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_size_request" c:identifier="gtk_widget_get_size_request"> <doc xml:space="preserve">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 gtk_widget_set_size_request(). To get the size a widget will actually request, call gtk_widget_get_preferred_size() instead of this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_state" c:identifier="gtk_widget_get_state" version="2.18" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Returns the widgetâs state. See gtk_widget_set_state().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_state_flags() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the state of @widget.</doc> <type name="StateType" c:type="GtkStateType"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_state_flags" c:identifier="gtk_widget_get_state_flags" version="3.0"> <doc xml:space="preserve">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 #GtkStateFlags to pass to a #GtkStyleContext method, you should look at gtk_style_context_get_state().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The state flags for widget</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_style" c:identifier="gtk_widget_get_style" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Simply an accessor function that returns @widget->style.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the widgetâs #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_style_context" c:identifier="gtk_widget_get_style_context"> <doc xml:space="preserve">Returns the style context associated to @widget. The returned object is guaranteed to be the same for the lifetime of @widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext. This memory is owned by @widget and must not be freed.</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_support_multidevice" c:identifier="gtk_widget_get_support_multidevice"> <doc xml:space="preserve">Returns %TRUE if @widget is multiple pointer aware. See gtk_widget_set_support_multidevice() for more information.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget is multidevice aware.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_template_child" c:identifier="gtk_widget_get_template_child"> <doc xml:space="preserve">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 gtk_widget_class_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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The object built in the template XML with the id @name</doc> <type name="GObject.Object" c:type="GObject*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="widget_type" transfer-ownership="none"> <doc xml:space="preserve">The #GType to get a template child for</doc> <type name="GType" c:type="GType"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">The âidâ of the child defined in the template XML</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_tooltip_markup" c:identifier="gtk_widget_get_tooltip_markup" version="2.12"> <doc xml:space="preserve">Gets the contents of the tooltip for @widget.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the tooltip text, or %NULL. You should free the returned string with g_free() when done.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip_text" c:identifier="gtk_widget_get_tooltip_text" version="2.12"> <doc xml:space="preserve">Gets the contents of the tooltip for @widget.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">the tooltip text, or %NULL. You should free the returned string with g_free() when done.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_tooltip_window" c:identifier="gtk_widget_get_tooltip_window" version="2.12"> <doc xml:space="preserve">Returns the #GtkWindow of the current tooltip. This can be the GtkWindow created by default, or the custom tooltip window set using gtk_widget_set_tooltip_window().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkWindow of the current tooltip.</doc> <type name="Window" c:type="GtkWindow*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_toplevel" c:identifier="gtk_widget_get_toplevel"> <doc xml:space="preserve">This function returns the topmost widget in the container hierarchy @widget is a part of. If @widget has no parent widgets, it will be returned as the topmost widget. No reference will be added to the returned widget; it should not be unreferenced. Note the difference in behavior vs. gtk_widget_get_ancestor(); `gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)` would return %NULL if @widget wasnât inside a toplevel window, and if the window was inside a #GtkWindow-derived widget which was in turn inside the toplevel #GtkWindow. While the second case may seem unlikely, it actually happens when a #GtkPlug is embedded inside a #GtkSocket within the same application. To reliably find the toplevel #GtkWindow, use gtk_widget_get_toplevel() and call GTK_IS_WINDOW() on the result. For instance, to get the title of a widget's toplevel window, one might use: |[<!-- language="C" --> static const char * get_widget_toplevel_title (GtkWidget *widget) { GtkWidget *toplevel = gtk_widget_get_toplevel (widget); if (GTK_IS_WINDOW (toplevel)) { return gtk_window_get_title (GTK_WINDOW (toplevel)); } return NULL; } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the topmost ancestor of @widget, or @widget itself if thereâs no ancestor.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_valign" c:identifier="gtk_widget_get_valign"> <doc xml:space="preserve">Gets the value of the #GtkWidget:valign property. For backwards compatibility reasons this method will never return %GTK_ALIGN_BASELINE, but instead it will convert it to %GTK_ALIGN_FILL. If your widget want to support baseline aligned children it must use gtk_widget_get_valign_with_baseline(), or `g_object_get (widget, "valign", &value, NULL)`, which will also report the true value.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical alignment of @widget, ignoring baseline alignment</doc> <type name="Align" c:type="GtkAlign"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_valign_with_baseline" c:identifier="gtk_widget_get_valign_with_baseline" version="3.10"> <doc xml:space="preserve">Gets the value of the #GtkWidget:valign property, including %GTK_ALIGN_BASELINE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the vertical alignment of @widget</doc> <type name="Align" c:type="GtkAlign"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_vexpand" c:identifier="gtk_widget_get_vexpand"> <doc xml:space="preserve">Gets whether the widget would like any available extra vertical space. See gtk_widget_get_hexpand() for more detail.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether vexpand flag is set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_vexpand_set" c:identifier="gtk_widget_get_vexpand_set"> <doc xml:space="preserve">Gets whether gtk_widget_set_vexpand() has been used to explicitly set the expand flag on this widget. See gtk_widget_get_hexpand_set() for more detail.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether vexpand has been explicitly set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_visible" c:identifier="gtk_widget_get_visible" version="2.18"> <doc xml:space="preserve">Determines whether the widget is visible. If you want to take into account whether the widgetâs parent is also marked as visible, use gtk_widget_is_visible() instead. This function does not check if the widget is obscured in any way. See gtk_widget_set_visible().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_visual" c:identifier="gtk_widget_get_visual"> <doc xml:space="preserve">Gets the visual that will be used to render @widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the visual for @widget</doc> <type name="Gdk.Visual" c:type="GdkVisual*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="get_window" c:identifier="gtk_widget_get_window" version="2.14"> <doc xml:space="preserve">Returns the widgetâs window if it is realized, %NULL otherwise</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">@widgetâs window.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="grab_add" c:identifier="gtk_grab_add"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">The widget that grabs keyboard and pointer events</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="grab_default" c:identifier="gtk_widget_grab_default"> <doc xml:space="preserve">Causes @widget to become the default widget. @widget must be able to be a default widget; typically you would ensure this yourself by calling gtk_widget_set_can_default() with a %TRUE value. The default widget is activated when the user presses Enter in a window. Default widgets must be activatable, that is, gtk_widget_activate() should affect them. Note that #GtkEntry widgets require the âactivates-defaultâ property set to %TRUE before they activate the default widget when Enter is pressed and the #GtkEntry is focused.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="grab_focus" c:identifier="gtk_widget_grab_focus"> <doc xml:space="preserve">Causes @widget to have the keyboard focus for the #GtkWindow it's inside. @widget must be a focusable widget, such as a #GtkEntry; something like #GtkFrame wonât work. More precisely, it must have the %GTK_CAN_FOCUS flag set. Use gtk_widget_set_can_focus() to modify that flag. The widget also needs to be realized and mapped. This is indicated by the related signals. Grabbing the focus immediately after creating the widget will likely fail and cause critical warnings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="grab_remove" c:identifier="gtk_grab_remove"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">The widget which gives up the grab</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="has_default" c:identifier="gtk_widget_has_default" version="2.18"> <doc xml:space="preserve">Determines whether @widget is the current default widget within its toplevel. See gtk_widget_set_can_default().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget is the current default widget within its toplevel, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="has_focus" c:identifier="gtk_widget_has_focus" version="2.18"> <doc xml:space="preserve">Determines if the widget has the global input focus. See gtk_widget_is_focus() for the difference between having the global input focus, and only having the focus within a toplevel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget has the global input focus.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="has_grab" c:identifier="gtk_widget_has_grab" version="2.18"> <doc xml:space="preserve">Determines whether the widget is currently grabbing events, so it is the only widget receiving input events (keyboard and mouse). See also gtk_grab_add().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is in the grab_widgets stack</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="has_rc_style" c:identifier="gtk_widget_has_rc_style" version="2.20" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Determines if the widget style has been looked up through the rc mechanism.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget has been looked up through the rc mechanism, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="has_screen" c:identifier="gtk_widget_has_screen" version="2.2"> <doc xml:space="preserve">Checks whether there is a #GdkScreen is associated with this widget. All toplevel widgets have an associated screen, and all widgets added into a hierarchy with a toplevel window at the top.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there is a #GdkScreen associated with the widget.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="has_visible_focus" c:identifier="gtk_widget_has_visible_focus" version="3.2"> <doc xml:space="preserve">Determines if the widget should show a visible indication that it has the global input focus. This is a convenience function for use in ::draw handlers that takes into account whether focus indication should currently be shown in the toplevel window of @widget. See gtk_window_get_focus_visible() for more information about focus indication. To find out if the widget has the global input focus, use gtk_widget_has_focus().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget should display a âfocus rectangleâ</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="hide" c:identifier="gtk_widget_hide"> <doc xml:space="preserve">Reverses the effects of gtk_widget_show(), causing the widget to be hidden (invisible to the user).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="hide_on_delete" c:identifier="gtk_widget_hide_on_delete"> <doc xml:space="preserve">Utility function; intended to be connected to the #GtkWidget::delete-event signal on a #GtkWindow. The function calls gtk_widget_hide() on its argument, then returns %TRUE. If connected to ::delete-event, the result is that clicking the close button for a window (on the window frame, top right corner usually) will hide but not destroy the window. By default, GTK+ destroys windows when ::delete-event is received.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="in_destruction" c:identifier="gtk_widget_in_destruction"> <doc xml:space="preserve">Returns whether the widget is currently being destroyed. This information can sometimes be used to avoid doing unnecessary work.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget is being destroyed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="init_template" c:identifier="gtk_widget_init_template" version="3.10"> <doc xml:space="preserve">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 gtk_widget_class_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. One reason is that generally derived widgets will assume that parent class composite widgets have been created in their instance initializers. Another reason is that 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="input_shape_combine_region" c:identifier="gtk_widget_input_shape_combine_region" version="3.0"> <doc xml:space="preserve">Sets an input shape for this widgetâs GDK window. This allows for windows which react to mouse click in a nonrectangular region, see gdk_window_input_shape_combine_region() for more information.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="region" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">shape to be added, or %NULL to remove an existing shape</doc> <type name="cairo.Region" c:type="cairo_region_t*"/> </parameter> </parameters> </method> <method name="insert_action_group" c:identifier="gtk_widget_insert_action_group" version="3.6"> <doc xml:space="preserve">Inserts @group into @widget. Children of @widget that implement #GtkActionable can then be associated with actions in @group by setting their âaction-nameâ to @prefix.`action-name`. If @group is %NULL, a previously inserted group for @name is removed from @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the prefix for actions in @group</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GActionGroup, or %NULL</doc> <type name="Gio.ActionGroup" c:type="GActionGroup*"/> </parameter> </parameters> </method> <method name="intersect" c:identifier="gtk_widget_intersect"> <doc xml:space="preserve">Computes the intersection of a @widgetâs area and @area, storing the intersection in @intersection, and returns %TRUE if there was an intersection. @intersection may be %NULL if youâre only interested in whether there was an intersection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there was an intersection</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="area" transfer-ownership="none"> <doc xml:space="preserve">a rectangle</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="intersection" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1"> <doc xml:space="preserve">rectangle to store intersection of @widget and @area</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="is_ancestor" c:identifier="gtk_widget_is_ancestor"> <doc xml:space="preserve">Determines whether @widget is somewhere inside @ancestor, possibly with intermediate containers.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @ancestor contains @widget as a child, grandchild, great grandchild, etc.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="ancestor" transfer-ownership="none"> <doc xml:space="preserve">another #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="is_composited" c:identifier="gtk_widget_is_composited" version="2.10" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Whether @widget can rely on having its alpha channel drawn correctly. On X11 this function returns whether a compositing manager is running for @widgetâs screen. Please note that the semantics of this call will change in the future if used on a widget that has a composited window in its hierarchy (as set by gdk_window_set_composited()).</doc> <doc-deprecated xml:space="preserve">Use gdk_screen_is_composited() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget can rely on its alpha channel being drawn correctly.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="is_drawable" c:identifier="gtk_widget_is_drawable" version="2.18"> <doc xml:space="preserve">Determines whether @widget can be drawn to. A widget can be drawn to if it is mapped and visible.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget is drawable, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="is_focus" c:identifier="gtk_widget_is_focus"> <doc xml:space="preserve">Determines if the widget is the focus widget within its toplevel. (This does not mean that the #GtkWidget:has-focus property is necessarily set; #GtkWidget:has-focus will only be set if the toplevel widget additionally has the global input focus.)</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is the focus widget.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="is_sensitive" c:identifier="gtk_widget_is_sensitive" version="2.18"> <doc xml:space="preserve">Returns the widgetâs effective sensitivity, which means it is sensitive itself and also its parent widget is sensitive</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget is effectively sensitive</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="is_toplevel" c:identifier="gtk_widget_is_toplevel" version="2.18"> <doc xml:space="preserve">Determines whether @widget is a toplevel widget. Currently only #GtkWindow and #GtkInvisible (and out-of-process #GtkPlugs) are toplevel widgets. Toplevel widgets have no parent widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @widget is a toplevel, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="is_visible" c:identifier="gtk_widget_is_visible" version="3.8"> <doc xml:space="preserve">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 gtk_widget_get_visible() and gtk_widget_set_visible()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget and all its parents are visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="keynav_failed" c:identifier="gtk_widget_keynav_failed" version="2.12"> <doc xml:space="preserve">This function should be called whenever keyboard navigation within a single widget hits a boundary. The function emits the #GtkWidget::keynav-failed signal on the widget and its return value should be interpreted in a way similar to the return value of 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 gtk_widget_child_focus() on the widgetâs toplevel. The default ::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 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 #GtkEntry 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%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).</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">direction of focus movement</doc> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </method> <method name="list_accel_closures" c:identifier="gtk_widget_list_accel_closures"> <doc xml:space="preserve">Lists the closures used by @widget for accelerator group connections with gtk_accel_group_connect_by_path() or gtk_accel_group_connect(). The closures can be used to monitor accelerator changes on @widget, by connecting to the @GtkAccelGroup::accel-changed signal of the #GtkAccelGroup of a closure which can be found out with gtk_accel_group_from_accel_closure().</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve"> a newly allocated #GList of closures</doc> <type name="GLib.List" c:type="GList*"> <type name="GObject.Closure"/> </type> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget to list accelerator closures for</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="list_action_prefixes" c:identifier="gtk_widget_list_action_prefixes" version="3.16"> <doc xml:space="preserve">Retrieves a %NULL-terminated array of strings containing the prefixes of #GActionGroup's available to @widget.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a %NULL-terminated array of strings.</doc> <array c:type="const gchar**"> <type name="utf8"/> </array> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="list_mnemonic_labels" c:identifier="gtk_widget_list_mnemonic_labels" version="2.4"> <doc xml:space="preserve">Returns a newly allocated list of the widgets, normally labels, for which this widget is the target of a mnemonic (see for example, 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.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">the list of mnemonic labels; free this list with g_list_free() when you are done with it.</doc> <type name="GLib.List" c:type="GList*"> <type name="Widget"/> </type> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="map" c:identifier="gtk_widget_map"> <doc xml:space="preserve">This function is only for use in widget implementations. Causes a widget to be mapped if it isnât already.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="mnemonic_activate" c:identifier="gtk_widget_mnemonic_activate"> <doc xml:space="preserve">Emits the #GtkWidget::mnemonic-activate signal.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal has been handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="group_cycling" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there are other widgets with the same mnemonic</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="modify_base" c:identifier="gtk_widget_modify_base" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the base color for a widget in a particular state. All other style values are left untouched. The base color is the background color used along with the text color (see gtk_widget_modify_text()) for widgets such as #GtkEntry and #GtkTextView. See also gtk_widget_modify_style(). > Note that âno windowâ widgets (which have the %GTK_NO_WINDOW > flag set) draw on their parent containerâs window and thus may > not draw any background themselves. This is the case for e.g. > #GtkLabel. > > To modify the background of such widgets, you have to set the > base color on their parent; if you want to set the background > of a rectangular area around a label, try placing the label in > a #GtkEventBox widget and setting the base color on that.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_override_background_color() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the state for which to set the base color</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to assign (does not need to be allocated), or %NULL to undo the effect of previous calls to of gtk_widget_modify_base().</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="modify_bg" c:identifier="gtk_widget_modify_bg" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the background color for a widget in a particular state. All other style values are left untouched. See also gtk_widget_modify_style(). > Note that âno windowâ widgets (which have the %GTK_NO_WINDOW > flag set) draw on their parent containerâs window and thus may > not draw any background themselves. This is the case for e.g. > #GtkLabel. > > To modify the background of such widgets, you have to set the > background color on their parent; if you want to set the background > of a rectangular area around a label, try placing the label in > a #GtkEventBox widget and setting the background color on that.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_override_background_color() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the state for which to set the background color</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to assign (does not need to be allocated), or %NULL to undo the effect of previous calls to of gtk_widget_modify_bg().</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="modify_cursor" c:identifier="gtk_widget_modify_cursor" version="2.12" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the cursor color to use in a widget, overriding the #GtkWidget cursor-color and secondary-cursor-color style properties. All other style values are left untouched. See also gtk_widget_modify_style().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_override_cursor() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="primary" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to use for primary cursor (does not need to be allocated), or %NULL to undo the effect of previous calls to of gtk_widget_modify_cursor().</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> <parameter name="secondary" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to use for secondary cursor (does not need to be allocated), or %NULL to undo the effect of previous calls to of gtk_widget_modify_cursor().</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="modify_fg" c:identifier="gtk_widget_modify_fg" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the foreground color for a widget in a particular state. All other style values are left untouched. See also gtk_widget_modify_style().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_override_color() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the state for which to set the foreground color</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to assign (does not need to be allocated), or %NULL to undo the effect of previous calls to of gtk_widget_modify_fg().</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="modify_font" c:identifier="gtk_widget_modify_font" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the font to use for a widget. All other style values are left untouched. See also gtk_widget_modify_style().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_override_font() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the font description to use, or %NULL to undo the effect of previous calls to gtk_widget_modify_font()</doc> <type name="Pango.FontDescription" c:type="PangoFontDescription*"/> </parameter> </parameters> </method> <method name="modify_style" c:identifier="gtk_widget_modify_style" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Modifies style values on the widget. Modifications made using this technique take precedence over style values set via an RC file, however, they will be overridden if a style is explicitly set on the widget using gtk_widget_set_style(). The #GtkRcStyle-struct is designed so each field can either be set or unset, so it is possible, using this function, to modify some style values and leave the others unchanged. Note that modifications made with this function are not cumulative with previous calls to gtk_widget_modify_style() or with such functions as gtk_widget_modify_fg(). If you wish to retain previous values, you must first call gtk_widget_get_modifier_style(), make your modifications to the returned style, then call gtk_widget_modify_style() with that style. On the other hand, if you first call gtk_widget_modify_style(), subsequent calls to such functions gtk_widget_modify_fg() will have a cumulative effect with the initial modifications.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext with a custom #GtkStyleProvider instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">the #GtkRcStyle-struct holding the style modifications</doc> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> </parameters> </method> <method name="modify_text" c:identifier="gtk_widget_modify_text" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the text color for a widget in a particular state. All other style values are left untouched. The text color is the foreground color used along with the base color (see gtk_widget_modify_base()) for widgets such as #GtkEntry and #GtkTextView. See also gtk_widget_modify_style().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_override_color() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the state for which to set the text color</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to assign (does not need to be allocated), or %NULL to undo the effect of previous calls to of gtk_widget_modify_text().</doc> <type name="Gdk.Color" c:type="const GdkColor*"/> </parameter> </parameters> </method> <method name="override_background_color" c:identifier="gtk_widget_override_background_color" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Sets the background color to use for a widget. All other style values are left untouched. See gtk_widget_override_color().</doc> <doc-deprecated xml:space="preserve">This function is not useful in the context of CSS-based rendering. If you wish to change the way a widget renders its background you should use a custom CSS style, through an application-specific #GtkStyleProvider and a CSS style class. You can also override the default drawing of a widget through the #GtkWidget::draw signal, and use Cairo to draw a specific color, regardless of the CSS style.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the state for which to set the background color</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to assign, or %NULL to undo the effect of previous calls to gtk_widget_override_background_color()</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <method name="override_color" c:identifier="gtk_widget_override_color" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Sets the color to use for a widget. All other style values are left untouched. This function does not act recursively. Setting the color of a container does not affect its children. Note that some widgets that you may not think of as containers, for instance #GtkButtons, are actually containers. This API is mostly meant as a quick way for applications to change a widget appearance. If you are developing a widgets library and intend this change to be themeable, it is better done by setting meaningful CSS classes in your widget/container implementation through gtk_style_context_add_class(). This way, your widget library can install a #GtkCssProvider with the %GTK_STYLE_PROVIDER_PRIORITY_FALLBACK priority in order to provide a default styling for those widgets that need so, and this theming may fully overridden by the userâs theme. Note that for complex widgets this may bring in undesired results (such as uniform background color everywhere), in these cases it is better to fully style such widgets through a #GtkCssProvider with the %GTK_STYLE_PROVIDER_PRIORITY_APPLICATION priority.</doc> <doc-deprecated xml:space="preserve">Use a custom style provider and style classes instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the state for which to set the color</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to assign, or %NULL to undo the effect of previous calls to gtk_widget_override_color()</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <method name="override_cursor" c:identifier="gtk_widget_override_cursor" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Sets the cursor color to use in a widget, overriding the cursor-color and secondary-cursor-color style properties. All other style values are left untouched. See also gtk_widget_modify_style(). Note that the underlying properties have the #GdkColor type, so the alpha value in @primary and @secondary will be ignored.</doc> <doc-deprecated xml:space="preserve">This function is not useful in the context of CSS-based rendering. If you wish to change the color used to render the primary and secondary cursors you should use a custom CSS style, through an application-specific #GtkStyleProvider and a CSS style class.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="cursor" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to use for primary cursor (does not need to be allocated), or %NULL to undo the effect of previous calls to of gtk_widget_override_cursor().</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> <parameter name="secondary_cursor" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to use for secondary cursor (does not need to be allocated), or %NULL to undo the effect of previous calls to of gtk_widget_override_cursor().</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <method name="override_font" c:identifier="gtk_widget_override_font" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Sets the font to use for a widget. All other style values are left untouched. See gtk_widget_override_color().</doc> <doc-deprecated xml:space="preserve">This function is not useful in the context of CSS-based rendering. If you wish to change the font a widget uses to render its text you should use a custom CSS style, through an application-specific #GtkStyleProvider and a CSS style class.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the font description to use, or %NULL to undo the effect of previous calls to gtk_widget_override_font()</doc> <type name="Pango.FontDescription" c:type="const PangoFontDescription*"/> </parameter> </parameters> </method> <method name="override_symbolic_color" c:identifier="gtk_widget_override_symbolic_color" version="3.0" deprecated="1" deprecated-version="3.16"> <doc xml:space="preserve">Sets a symbolic color for a widget. All other style values are left untouched. See gtk_widget_override_color() for overriding the foreground or background color.</doc> <doc-deprecated xml:space="preserve">This function is not useful in the context of CSS-based rendering. If you wish to change the color used to render symbolic icons you should use a custom CSS style, through an application-specific #GtkStyleProvider and a CSS style class.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the symbolic color to modify</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="color" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the color to assign (does not need to be allocated), or %NULL to undo the effect of previous calls to gtk_widget_override_symbolic_color()</doc> <type name="Gdk.RGBA" c:type="const GdkRGBA*"/> </parameter> </parameters> </method> <method name="path" c:identifier="gtk_widget_path" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Obtains the full path to @widget. The path is simply the name of a widget and all its parents in the container hierarchy, separated by periods. The name of a widget comes from gtk_widget_get_name(). Paths are used to apply styles to a widget in gtkrc configuration files. Widget names are the type of the widget by default (e.g. âGtkButtonâ) or can be set to an application-specific value with gtk_widget_set_name(). By setting the name of a widget, you allow users or theme authors to apply styles to that specific widget in their gtkrc file. @path_reversed_p fills in the path in reverse order, i.e. starting with @widgetâs name instead of starting with the name of @widgetâs outermost ancestor.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_path() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="path_length" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store length of the path, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store allocated path string, or %NULL</doc> <type name="utf8" c:type="gchar**"/> </parameter> <parameter name="path_reversed" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store allocated reverse path string, or %NULL</doc> <type name="utf8" c:type="gchar**"/> </parameter> </parameters> </method> <method name="queue_allocate" c:identifier="gtk_widget_queue_allocate" version="3.20"> <doc xml:space="preserve">This function is only for use in widget implementations. Flags the widget for a rerun of the GtkWidgetClass::size_allocate function. Use this function instead of 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 gtk_widget_set_halign().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="queue_compute_expand" c:identifier="gtk_widget_queue_compute_expand"> <doc xml:space="preserve">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 gtk_widget_compute_expand().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="queue_draw" c:identifier="gtk_widget_queue_draw"> <doc xml:space="preserve">Equivalent to calling gtk_widget_queue_draw_area() for the entire area of a widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="queue_draw_area" c:identifier="gtk_widget_queue_draw_area"> <doc xml:space="preserve">Convenience function that calls gtk_widget_queue_draw_region() on the region created from the given coordinates. The region here is specified in widget coordinates. Widget coordinates are a bit odd; for historical reasons, they are defined as @widget->window coordinates for widgets that return %TRUE for gtk_widget_get_has_window(), and are relative to @widget->allocation.x, @widget->allocation.y otherwise. @width or @height may be 0, in this case this function does nothing. Negative values for @width and @height are not allowed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x coordinate of upper-left corner of rectangle to redraw</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y coordinate of upper-left corner of rectangle to redraw</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width of region to draw</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height of region to draw</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="queue_draw_region" c:identifier="gtk_widget_queue_draw_region" version="3.0"> <doc xml:space="preserve">Invalidates the area of @widget defined by @region by calling gdk_window_invalidate_region() on the widgetâs window and all its child windows. Once the main loop becomes idle (after the current batch of events has been processed, roughly), the window will receive expose events for the union of all regions that have been invalidated. Normally you would only use this function in widget implementations. You might also use it to schedule a redraw of a #GtkDrawingArea or some portion thereof.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="region" transfer-ownership="none"> <doc xml:space="preserve">region to draw</doc> <type name="cairo.Region" c:type="const cairo_region_t*"/> </parameter> </parameters> </method> <method name="queue_resize" c:identifier="gtk_widget_queue_resize"> <doc xml:space="preserve">This function is only for use in widget implementations. Flags a widget to have its size renegotiated; should be called when a widget for some reason has a new size request. For example, when you change the text in a #GtkLabel, #GtkLabel 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 GtkWidgetClass::size_allocate virtual method. Calls to gtk_widget_queue_resize() from inside GtkWidgetClass::size_allocate will be silently ignored.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="queue_resize_no_redraw" c:identifier="gtk_widget_queue_resize_no_redraw" version="2.4"> <doc xml:space="preserve">This function works like gtk_widget_queue_resize(), except that the widget is not invalidated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="realize" c:identifier="gtk_widget_realize"> <doc xml:space="preserve">Creates the GDK (windowing system) resources associated with a widget. For example, @widget->window will be created when a widget is realized. 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 gtk_widget_realize() 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 #GtkWidget::draw. Or simply g_signal_connect () to the #GtkWidget::realize signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="region_intersect" c:identifier="gtk_widget_region_intersect" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Computes the intersection of a @widgetâs area and @region, returning the intersection. The result may be empty, use cairo_region_is_empty() to check.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_allocation() and cairo_region_intersect_rectangle() to get the same behavior.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly allocated region holding the intersection of @widget and @region.</doc> <type name="cairo.Region" c:type="cairo_region_t*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="region" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_region_t, in the same coordinate system as @widget->allocation. That is, relative to @widget->window for widgets which return %FALSE from gtk_widget_get_has_window(); relative to the parent window of @widget->window otherwise.</doc> <type name="cairo.Region" c:type="const cairo_region_t*"/> </parameter> </parameters> </method> <method name="register_window" c:identifier="gtk_widget_register_window" version="3.8"> <doc xml:space="preserve">Registers a #GdkWindow with the widget and sets it up so that the widget receives events for it. Call gtk_widget_unregister_window() when destroying the window. Before 3.8 you needed to call gdk_window_set_user_data() directly to set this up. This is now deprecated and you should use gtk_widget_register_window() instead. Old code will keep working as is, although some new features like transparency might not work perfectly.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="remove_accelerator" c:identifier="gtk_widget_remove_accelerator"> <doc xml:space="preserve">Removes an accelerator from @widget, previously installed with gtk_widget_add_accelerator().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether an accelerator was installed and could be removed</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">widget to install an accelerator on</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">accel group for this widget</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">GDK keyval of the accelerator</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">modifier key combination of the accelerator</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </method> <method name="remove_mnemonic_label" c:identifier="gtk_widget_remove_mnemonic_label" version="2.4"> <doc xml:space="preserve">Removes a widget from the list of mnemonic labels for this widget. (See gtk_widget_list_mnemonic_labels()). The widget must have previously been added to the list with gtk_widget_add_mnemonic_label().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="label" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget that was previously set as a mnemonic label for @widget with gtk_widget_add_mnemonic_label().</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="remove_tick_callback" c:identifier="gtk_widget_remove_tick_callback" version="3.8"> <doc xml:space="preserve">Removes a tick callback previously registered with gtk_widget_add_tick_callback().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="id" transfer-ownership="none"> <doc xml:space="preserve">an id returned by gtk_widget_add_tick_callback()</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="render_icon" c:identifier="gtk_widget_render_icon" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">A convenience function that uses the theme settings for @widget to look up @stock_id and render it to a pixbuf. @stock_id should be a stock icon ID such as #GTK_STOCK_OPEN or #GTK_STOCK_OK. @size should be a size such as #GTK_ICON_SIZE_MENU. @detail should be a string that identifies the widget or code doing the rendering, so that theme engines can special-case rendering for that widget or code. The pixels in the returned #GdkPixbuf are shared with the rest of the application and should not be modified. The pixbuf should be freed after use with g_object_unref().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_render_icon_pixbuf() instead.</doc-deprecated> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a new pixbuf, or %NULL if the stock ID wasnât known</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">a stock ID</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock size (#GtkIconSize). A size of `(GtkIconSize)-1` means render at the size of the source and donât scale (if there are multiple source sizes, GTK+ picks one of the available sizes).</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">render detail to pass to theme engine</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="render_icon_pixbuf" c:identifier="gtk_widget_render_icon_pixbuf" version="3.0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">A convenience function that uses the theme engine and style settings for @widget to look up @stock_id and render it to a pixbuf. @stock_id should be a stock icon ID such as #GTK_STOCK_OPEN or #GTK_STOCK_OK. @size should be a size such as #GTK_ICON_SIZE_MENU. The pixels in the returned #GdkPixbuf are shared with the rest of the application and should not be modified. The pixbuf should be freed after use with g_object_unref().</doc> <doc-deprecated xml:space="preserve">Use gtk_icon_theme_load_icon() instead.</doc-deprecated> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a new pixbuf, or %NULL if the stock ID wasnât known</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">a stock ID</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a stock size (#GtkIconSize). A size of `(GtkIconSize)-1` means render at the size of the source and donât scale (if there are multiple source sizes, GTK+ picks one of the available sizes).</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </method> <method name="reparent" c:identifier="gtk_widget_reparent" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Moves a widget from one #GtkContainer to another, handling reference count issues to avoid destroying the widget.</doc> <doc-deprecated xml:space="preserve">Use gtk_container_remove() and gtk_container_add().</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="new_parent" transfer-ownership="none"> <doc xml:space="preserve">a #GtkContainer to move the widget into</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="reset_rc_styles" c:identifier="gtk_widget_reset_rc_styles" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Reset the styles of @widget and all descendents, so when they are looked up again, they get the correct values for the currently loaded RC file settings. This function is not useful for applications.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead, and gtk_widget_reset_style()</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget.</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="reset_style" c:identifier="gtk_widget_reset_style" version="3.0"> <doc xml:space="preserve">Updates the style context of @widget and all descendants by updating its widget path. #GtkContainers may want to use this on a child when reordering it in a way that a different style might apply to it. See also gtk_container_get_path_for_child().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="send_expose" c:identifier="gtk_widget_send_expose" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Very rarely-used function. This function is used to emit an expose event on a widget. This function is not normally used directly. The only time it is used is when propagating an expose event to a windowless child widget (gtk_widget_get_has_window() is %FALSE), and that is normally done using gtk_container_propagate_draw(). If you want to force an area of a window to be redrawn, use gdk_window_invalidate_rect() or gdk_window_invalidate_region(). To cause the redraw to be done immediately, follow that call with a call to gdk_window_process_updates().</doc> <doc-deprecated xml:space="preserve">Application and widget code should not handle expose events directly; invalidation should use the #GtkWidget API, and drawing should only happen inside #GtkWidget::draw implementations</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">return from the event signal emission (%TRUE if the event was handled)</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a expose #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </method> <method name="send_focus_change" c:identifier="gtk_widget_send_focus_change" version="2.20"> <doc xml:space="preserve">Sends the focus change @event to @widget This function is not meant to be used by applications. The only time it should be used is when it is necessary for a #GtkWidget to assign focus to a widget that is semantically owned by the first widget even though itâs not a direct child - for instance, a search entry in a floating window similar to the quick search in #GtkTreeView. An example of its usage is: |[<!-- language="C" --> GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE); fevent->focus_change.type = GDK_FOCUS_CHANGE; fevent->focus_change.in = TRUE; fevent->focus_change.window = _gtk_widget_get_window (widget); if (fevent->focus_change.window != NULL) g_object_ref (fevent->focus_change.window); gtk_widget_send_focus_change (widget, fevent); gdk_event_free (event); ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the return value from the event signal emission: %TRUE if the event was handled, and %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent of type GDK_FOCUS_CHANGE</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </method> <method name="set_accel_path" c:identifier="gtk_widget_set_accel_path"> <doc xml:space="preserve">Given an accelerator group, @accel_group, and an accelerator path, @accel_path, sets up an accelerator in @accel_group so whenever the key binding that is defined for @accel_path is pressed, @widget will be activated. This removes any accelerators (for any accelerator group) installed by previous calls to gtk_widget_set_accel_path(). Associating accelerators with paths allows them to be modified by the user and the modifications to be saved for future use. (See gtk_accel_map_save().) This function is a low level function that would most likely be used by a menu creation system like #GtkUIManager. If you use #GtkUIManager, setting up accelerator paths will be done automatically. Even when you you arenât using #GtkUIManager, if you only want to set up accelerators on menu items gtk_menu_item_set_accel_path() provides a somewhat more convenient interface. Note that @accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="accel_path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">path used to look up the accelerator</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accel_group" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkAccelGroup.</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> </parameters> </method> <method name="set_allocation" c:identifier="gtk_widget_set_allocation" version="2.18"> <doc xml:space="preserve">Sets the widgetâs allocation. This should not be used directly, but from within a widgetâs size_allocate method. The allocation set should be the âadjustedâ or actual allocation. If youâre implementing a #GtkContainer, you want to use gtk_widget_size_allocate() instead of gtk_widget_set_allocation(). The GtkWidgetClass::adjust_size_allocation virtual method adjusts the allocation inside gtk_widget_size_allocate() to create an adjusted allocation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkAllocation to copy from</doc> <type name="Allocation" c:type="const GtkAllocation*"/> </parameter> </parameters> </method> <method name="set_app_paintable" c:identifier="gtk_widget_set_app_paintable"> <doc xml:space="preserve">Sets whether the application intends to draw on the widget in an #GtkWidget::draw handler. This is a hint to the widget and does not affect the behavior of the GTK+ core; many widgets ignore this flag entirely. For widgets that do pay attention to the flag, such as #GtkEventBox and #GtkWindow, the effect is to suppress default themed drawing of the widget's background. (Children of the widget will still be drawn.) The application is then entirely responsible for drawing the widget background. Note that the background is still drawn when the widget is mapped.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="app_paintable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the application will paint on the widget</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_can_default" c:identifier="gtk_widget_set_can_default" version="2.18"> <doc xml:space="preserve">Specifies whether @widget can be a default widget. See gtk_widget_grab_default() for details about the meaning of âdefaultâ.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="can_default" transfer-ownership="none"> <doc xml:space="preserve">whether or not @widget can be a default widget.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_can_focus" c:identifier="gtk_widget_set_can_focus" version="2.18"> <doc xml:space="preserve">Specifies whether @widget can own the input focus. See gtk_widget_grab_focus() for actually setting the input focus on a widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="can_focus" transfer-ownership="none"> <doc xml:space="preserve">whether or not @widget can own the input focus.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_child_visible" c:identifier="gtk_widget_set_child_visible"> <doc xml:space="preserve">Sets whether @widget should be mapped along with its when its parent is mapped and @widget has been shown with gtk_widget_show(). The child visibility can be set for widget before it is added to a container with 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 never should be called by an application.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="is_visible" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, @widget should be mapped along with its parent.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_clip" c:identifier="gtk_widget_set_clip" version="3.14"> <doc xml:space="preserve">Sets the widgetâs clip. This must not be used directly, but from within a widgetâs size_allocate method. It must be called after gtk_widget_set_allocation() (or after chaining up to the parent class), because that function resets the clip. The clip set should be the area that @widget draws on. If @widget is a #GtkContainer, the area must contain all children's clips. If this function is not called by @widget during a ::size-allocate handler, the clip will be set to @widget's allocation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="clip" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GtkAllocation to copy from</doc> <type name="Allocation" c:type="const GtkAllocation*"/> </parameter> </parameters> </method> <method name="set_composite_name" c:identifier="gtk_widget_set_composite_name" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets a widgets composite name. The widget must be a composite child of its parent; see gtk_widget_push_composite_child().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_class_set_template(), or donât use this API at all.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget.</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name to set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_device_enabled" c:identifier="gtk_widget_set_device_enabled" version="3.0"> <doc xml:space="preserve">Enables or disables a #GdkDevice to interact with @widget and all its children. It does so by descending through the #GdkWindow hierarchy and enabling the same mask that is has for core events (i.e. the one that gdk_window_get_events() returns).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> <parameter name="enabled" transfer-ownership="none"> <doc xml:space="preserve">whether to enable the device</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_device_events" c:identifier="gtk_widget_set_device_events" version="3.0"> <doc xml:space="preserve">Sets the device event mask (see #GdkEventMask) for a widget. The event mask determines which events a widget will receive from @device. Keep in mind that different widgets have different default event masks, and by changing the event mask you may disrupt a widgetâs functionality, so be careful. This function must be called while a widget is unrealized. Consider gtk_widget_add_device_events() for widgets that are already realized, or if you want to preserve the existing event mask. This function canât be used with windowless widgets (which return %FALSE from gtk_widget_get_has_window()); to get events on those widgets, place them inside a #GtkEventBox and receive events on the event box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> <parameter name="events" transfer-ownership="none"> <doc xml:space="preserve">event mask</doc> <type name="Gdk.EventMask" c:type="GdkEventMask"/> </parameter> </parameters> </method> <method name="set_direction" c:identifier="gtk_widget_set_direction"> <doc xml:space="preserve">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 gtk_widget_set_default_direction() will be used.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="dir" transfer-ownership="none"> <doc xml:space="preserve">the new direction</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> </parameters> </method> <method name="set_double_buffered" c:identifier="gtk_widget_set_double_buffered" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Widgets are double buffered by default; you can use this function to turn off the buffering. âDouble bufferedâ simply means that gdk_window_begin_draw_frame() and gdk_window_end_draw_frame() are called automatically around expose events sent to the widget. gdk_window_begin_draw_frame() diverts all drawing to a widget's window to an offscreen buffer, and gdk_window_end_draw_frame() draws the buffer to the screen. The result is that users see the window update in one smooth step, and donât see individual graphics primitives being rendered. In very simple terms, double buffered widgets donât flicker, so you would only use this function to turn off double buffering if you had special needs and really knew what you were doing. Note: if you turn off double-buffering, you have to handle expose events, since even the clearing to the background color or pixmap will not happen automatically (as it is done in gdk_window_begin_draw_frame()). In 3.10 GTK and GDK have been restructured for translucent drawing. Since then expose events for double-buffered widgets are culled into a single event to the toplevel GDK window. If you now unset double buffering, you will cause a separate rendering pass for every widget. This will likely cause rendering problems - in particular related to stacking - and usually increases rendering times significantly.</doc> <doc-deprecated xml:space="preserve">This function does not work under non-X11 backends or with non-native windows. It should not be used in newly written code.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="double_buffered" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to double-buffer a widget</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_events" c:identifier="gtk_widget_set_events"> <doc xml:space="preserve">Sets the event mask (see #GdkEventMask) for a widget. The event mask determines which events a widget will receive. Keep in mind that different widgets have different default event masks, and by changing the event mask you may disrupt a widgetâs functionality, so be careful. This function must be called while a widget is unrealized. Consider gtk_widget_add_events() for widgets that are already realized, or if you want to preserve the existing event mask. This function canât be used with widgets that have no window. (See gtk_widget_get_has_window()). To get events on those widgets, place them inside a #GtkEventBox and receive events on the event box.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="events" transfer-ownership="none"> <doc xml:space="preserve">event mask</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_focus_on_click" c:identifier="gtk_widget_set_focus_on_click" version="3.20"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="focus_on_click" transfer-ownership="none"> <doc xml:space="preserve">whether the widget should grab focus when clicked with the mouse</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_font_map" c:identifier="gtk_widget_set_font_map" version="3.18"> <doc xml:space="preserve">Sets the font map to use for Pango rendering. When not set, the widget will inherit the font map from its parent.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="font_map" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #PangoFontMap, or %NULL to unset any previously set font map</doc> <type name="Pango.FontMap" c:type="PangoFontMap*"/> </parameter> </parameters> </method> <method name="set_font_options" c:identifier="gtk_widget_set_font_options" version="3.18"> <doc xml:space="preserve">Sets the #cairo_font_options_t used for Pango rendering in this widget. When not set, the default font options for the #GdkScreen will be used.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="options" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #cairo_font_options_t, or %NULL to unset any previously set default font options.</doc> <type name="cairo.FontOptions" c:type="const cairo_font_options_t*"/> </parameter> </parameters> </method> <method name="set_halign" c:identifier="gtk_widget_set_halign"> <doc xml:space="preserve">Sets the horizontal alignment of @widget. See the #GtkWidget:halign property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="align" transfer-ownership="none"> <doc xml:space="preserve">the horizontal alignment</doc> <type name="Align" c:type="GtkAlign"/> </parameter> </parameters> </method> <method name="set_has_tooltip" c:identifier="gtk_widget_set_has_tooltip" version="2.12"> <doc xml:space="preserve">Sets the has-tooltip property on @widget to @has_tooltip. See #GtkWidget:has-tooltip for more information.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="has_tooltip" transfer-ownership="none"> <doc xml:space="preserve">whether or not @widget has a tooltip.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_has_window" c:identifier="gtk_widget_set_has_window" version="2.18"> <doc xml:space="preserve">Specifies whether @widget has a #GdkWindow of its own. Note that all realized widgets have a non-%NULL âwindowâ pointer (gtk_widget_get_window() never returns a %NULL window when a widget is realized), but for many of them itâs actually the #GdkWindow of one of its parent widgets. Widgets that do not create a %window for themselves in #GtkWidget::realize must announce this by calling this function with @has_window = %FALSE. This function should only be called by widget implementations, and they should call it in their init() function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="has_window" transfer-ownership="none"> <doc xml:space="preserve">whether or not @widget has a window.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_hexpand" c:identifier="gtk_widget_set_hexpand"> <doc xml:space="preserve">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 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 gtk_widget_set_hexpand() sets the hexpand-set property (see gtk_widget_set_hexpand_set()) which causes the widgetâs hexpand value to be used, rather than looking at children and widget state.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">whether to expand</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_hexpand_set" c:identifier="gtk_widget_set_hexpand_set"> <doc xml:space="preserve">Sets whether the hexpand flag (see gtk_widget_get_hexpand()) will be used. The hexpand-set property will be set automatically when you call 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="set" transfer-ownership="none"> <doc xml:space="preserve">value for hexpand-set property</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_mapped" c:identifier="gtk_widget_set_mapped" version="2.20"> <doc xml:space="preserve">Marks the widget as being mapped. This function should only ever be called in a derived widget's âmapâ or âunmapâ implementation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="mapped" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to mark the widget as mapped</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_margin_bottom" c:identifier="gtk_widget_set_margin_bottom" version="3.0"> <doc xml:space="preserve">Sets the bottom margin of @widget. See the #GtkWidget:margin-bottom property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the bottom margin</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_margin_end" c:identifier="gtk_widget_set_margin_end" version="3.12"> <doc xml:space="preserve">Sets the end margin of @widget. See the #GtkWidget:margin-end property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the end margin</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_margin_left" c:identifier="gtk_widget_set_margin_left" version="3.0" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Sets the left margin of @widget. See the #GtkWidget:margin-left property.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_start() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the left margin</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_margin_right" c:identifier="gtk_widget_set_margin_right" version="3.0" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">Sets the right margin of @widget. See the #GtkWidget:margin-right property.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_margin_end() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the right margin</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_margin_start" c:identifier="gtk_widget_set_margin_start" version="3.12"> <doc xml:space="preserve">Sets the start margin of @widget. See the #GtkWidget:margin-start property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the start margin</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_margin_top" c:identifier="gtk_widget_set_margin_top" version="3.0"> <doc xml:space="preserve">Sets the top margin of @widget. See the #GtkWidget:margin-top property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="margin" transfer-ownership="none"> <doc xml:space="preserve">the top margin</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_name" c:identifier="gtk_widget_set_name"> <doc xml:space="preserve">Widgets can be named, which allows you to refer to them 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 #GtkStyleContext). Note that the CSS syntax has certain special characters to delimit and represent elements in a selector (period, #, >, *...), so using these will make your widget impossible to match by name. Any combination of alphanumeric symbols, dashes and underscores will suffice.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name for the widget</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_no_show_all" c:identifier="gtk_widget_set_no_show_all" version="2.4"> <doc xml:space="preserve">Sets the #GtkWidget:no-show-all property, which determines whether calls to gtk_widget_show_all() will affect this widget. This is mostly for use in constructing widget hierarchies with externally controlled visibility, see #GtkUIManager.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="no_show_all" transfer-ownership="none"> <doc xml:space="preserve">the new value for the âno-show-allâ property</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_opacity" c:identifier="gtk_widget_set_opacity" version="3.8"> <doc xml:space="preserve">Request the @widget to be rendered partially transparent, with opacity 0 being fully transparent and 1 fully opaque. (Opacity values are clamped to the [0,1] range.). This works on both toplevel widget, and child widgets, although there are some limitations: For toplevel widgets this depends on the capabilities of the windowing system. On X11 this has any effect only on X screens with a compositing manager running. See gtk_widget_is_composited(). On Windows it should work always, although setting a windowâs opacity after the window has been shown causes it to flicker once on Windows. For child widgets it doesnât work if any affected widget has a native window, or disables double buffering.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="opacity" transfer-ownership="none"> <doc xml:space="preserve">desired opacity, between 0 and 1</doc> <type name="gdouble" c:type="double"/> </parameter> </parameters> </method> <method name="set_parent" c:identifier="gtk_widget_set_parent"> <doc xml:space="preserve">This function is useful only when implementing subclasses of #GtkContainer. Sets the container as the parent of @widget, and takes care of some details such as updating the state and style of the child to reflect its new location. The opposite function is gtk_widget_unparent().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="parent" transfer-ownership="none"> <doc xml:space="preserve">parent container</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_parent_window" c:identifier="gtk_widget_set_parent_window"> <doc xml:space="preserve">Sets a non default parent window for @widget. For #GtkWindow classes, setting a @parent_window effects whether the window is a toplevel window or can be embedded into other widgets. For #GtkWindow classes, this needs to be called before the window is realized.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget.</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="parent_window" transfer-ownership="none"> <doc xml:space="preserve">the new parent window.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="set_realized" c:identifier="gtk_widget_set_realized" version="2.20"> <doc xml:space="preserve">Marks the widget as being realized. This function must only be called after all #GdkWindows for the @widget have been created and registered. This function should only ever be called in a derived widget's ârealizeâ or âunrealizeâ implementation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="realized" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to mark the widget as realized</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_receives_default" c:identifier="gtk_widget_set_receives_default" version="2.18"> <doc xml:space="preserve">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. See gtk_widget_grab_default() for details about the meaning of âdefaultâ.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="receives_default" transfer-ownership="none"> <doc xml:space="preserve">whether or not @widget can be a default widget.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_redraw_on_allocate" c:identifier="gtk_widget_set_redraw_on_allocate"> <doc xml:space="preserve">Sets whether the entire widget is queued for drawing when its size allocation changes. By default, this setting is %TRUE and the entire widget is redrawn on every size change. If your widget leaves the upper left unchanged when made bigger, turning this setting off will improve performance. Note that for widgets where gtk_widget_get_has_window() is %FALSE setting this flag to %FALSE turns off all allocation on resizing: the widget will not even redraw if its position changes; this is to allow containers that donât draw anything to avoid excess invalidations. If you set this flag on a widget with no window that does draw on @widget->window, you are responsible for invalidating both the old and new allocation of the widget when the widget is moved and responsible for invalidating regions newly when the widget increases size.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="redraw_on_allocate" transfer-ownership="none"> <doc xml:space="preserve">if %TRUE, the entire widget will be redrawn when it is allocated to a new size. Otherwise, only the new portion of the widget will be redrawn.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_sensitive" c:identifier="gtk_widget_set_sensitive"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="sensitive" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to make the widget sensitive</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_size_request" c:identifier="gtk_widget_set_size_request"> <doc xml:space="preserve">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, 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. When dealing with window sizes, gtk_window_set_geometry_hints() can be a useful function as well. 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 #GtkWidget properties margin-left, margin-right, margin-top, and margin-bottom, but it does include pretty much all other padding or border properties set by any subclass of #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width @widget should request, or -1 to unset</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height @widget should request, or -1 to unset</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_state" c:identifier="gtk_widget_set_state" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">This function is for use in widget implementations. Sets the state of a widget (insensitive, prelighted, etc.) Usually you should set the state using wrapper functions such as gtk_widget_set_sensitive().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_state_flags() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">new state for @widget</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> </parameters> </method> <method name="set_state_flags" c:identifier="gtk_widget_set_state_flags" version="3.0"> <doc xml:space="preserve">This function is for use in widget implementations. Turns on flag values in the current widget state (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 gtk_widget_set_direction(). It is worth mentioning that any other state than %GTK_STATE_FLAG_INSENSITIVE, will be propagated down to all non-internal children if @widget is a #GtkContainer, while %GTK_STATE_FLAG_INSENSITIVE itself will be propagated down to all #GtkContainer children by different means than turning on the state flag down the hierarchy, both gtk_widget_get_state_flags() and gtk_widget_is_sensitive() will make use of these.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">State flags to turn on</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> <parameter name="clear" transfer-ownership="none"> <doc xml:space="preserve">Whether to clear state before turning on @flags</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_style" c:identifier="gtk_widget_set_style" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Used to set the #GtkStyle for a widget (@widget->style). Since GTK 3, this function does nothing, the passed in style is ignored.</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="style" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkStyle, or %NULL to remove the effect of a previous call to gtk_widget_set_style() and go back to the default style</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> </parameters> </method> <method name="set_support_multidevice" c:identifier="gtk_widget_set_support_multidevice" version="3.0"> <doc xml:space="preserve">Enables or disables multiple pointer awareness. If this setting is %TRUE, @widget will start receiving multiple, per device enter/leave events. Note that if custom #GdkWindows are created in #GtkWidget::realize, gdk_window_set_support_multidevice() will have to be called manually on them.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="support_multidevice" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to support input from multiple devices.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_tooltip_markup" c:identifier="gtk_widget_set_tooltip_markup" version="2.12"> <doc xml:space="preserve">Sets @markup as the contents of the tooltip, which is marked up with the [Pango text markup language][PangoMarkupFormat]. This function will take care of setting #GtkWidget:has-tooltip to %TRUE and of the default handler for the #GtkWidget::query-tooltip signal. See also the #GtkWidget:tooltip-markup property and gtk_tooltip_set_markup().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="markup" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the contents of the tooltip for @widget, or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_tooltip_text" c:identifier="gtk_widget_set_tooltip_text" version="2.12"> <doc xml:space="preserve">Sets @text as the contents of the tooltip. This function will take care of setting #GtkWidget:has-tooltip to %TRUE and of the default handler for the #GtkWidget::query-tooltip signal. See also the #GtkWidget:tooltip-text property and gtk_tooltip_set_text().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the contents of the tooltip for @widget</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_tooltip_window" c:identifier="gtk_widget_set_tooltip_window" version="2.12"> <doc xml:space="preserve">Replaces the default window used for displaying tooltips with @custom_window. GTK+ will take care of showing and hiding @custom_window at the right moment, to behave likewise as the default tooltip window. If @custom_window is %NULL, the default tooltip window will be used.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="custom_window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWindow, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <method name="set_valign" c:identifier="gtk_widget_set_valign"> <doc xml:space="preserve">Sets the vertical alignment of @widget. See the #GtkWidget:valign property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="align" transfer-ownership="none"> <doc xml:space="preserve">the vertical alignment</doc> <type name="Align" c:type="GtkAlign"/> </parameter> </parameters> </method> <method name="set_vexpand" c:identifier="gtk_widget_set_vexpand"> <doc xml:space="preserve">Sets whether the widget would like any available extra vertical space. See gtk_widget_set_hexpand() for more detail.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="expand" transfer-ownership="none"> <doc xml:space="preserve">whether to expand</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_vexpand_set" c:identifier="gtk_widget_set_vexpand_set"> <doc xml:space="preserve">Sets whether the vexpand flag (see gtk_widget_get_vexpand()) will be used. See gtk_widget_set_hexpand_set() for more detail.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="set" transfer-ownership="none"> <doc xml:space="preserve">value for vexpand-set property</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visible" c:identifier="gtk_widget_set_visible" version="2.18"> <doc xml:space="preserve">Sets the visibility state of @widget. Note that setting this to %TRUE doesnât mean the widget is actually viewable, see gtk_widget_get_visible(). This function simply calls gtk_widget_show() or gtk_widget_hide() but is nicer to use when the visibility of the widget depends on some condition.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="visible" transfer-ownership="none"> <doc xml:space="preserve">whether the widget should be shown or not</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_visual" c:identifier="gtk_widget_set_visual"> <doc xml:space="preserve">Sets the visual that should be used for by widget and its children for creating #GdkWindows. The visual must be on the same #GdkScreen as returned by gtk_widget_get_screen(), so handling the #GtkWidget::screen-changed signal is necessary. Setting a new @visual will not cause @widget to recreate its windows, so you should call this function before @widget is realized.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="visual" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">visual to be used or %NULL to unset a previous one</doc> <type name="Gdk.Visual" c:type="GdkVisual*"/> </parameter> </parameters> </method> <method name="set_window" c:identifier="gtk_widget_set_window" version="2.18"> <doc xml:space="preserve">Sets a widgetâs window. This function should only be used in a widgetâs #GtkWidget::realize implementation. The %window passed is usually either new window created with gdk_window_new(), or the window of its parent widget as returned by gtk_widget_get_parent_window(). Widgets must indicate whether they will create their own #GdkWindow by calling gtk_widget_set_has_window(). This is usually done in the widgetâs init() function. Note that this function does not add any reference to @window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="window" transfer-ownership="full"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="shape_combine_region" c:identifier="gtk_widget_shape_combine_region" version="3.0"> <doc xml:space="preserve">Sets a shape for this widgetâs GDK window. This allows for transparent windows etc., see gdk_window_shape_combine_region() for more information.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="region" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">shape to be added, or %NULL to remove an existing shape</doc> <type name="cairo.Region" c:type="cairo_region_t*"/> </parameter> </parameters> </method> <method name="show" c:identifier="gtk_widget_show"> <doc xml:space="preserve">Flags a widget to be displayed. Any widget that isnât shown will not appear on the screen. If you want to show all the widgets in a container, itâs easier to call gtk_widget_show_all() on the container, instead of individually showing the widgets. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="show_all" c:identifier="gtk_widget_show_all"> <doc xml:space="preserve">Recursively shows a widget, and any child widgets (if the widget is a container).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="show_now" c:identifier="gtk_widget_show_now"> <doc xml:space="preserve">Shows a widget. If the widget is an unmapped toplevel widget (i.e. a #GtkWindow that has not yet been shown), enter the main loop and wait for the window to actually be mapped. Be careful; because the main loop is running, anything can happen during this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="size_allocate" c:identifier="gtk_widget_size_allocate"> <doc xml:space="preserve">This function is only used by #GtkContainer subclasses, to assign a size and position to their child widgets. In this function, the allocation may be adjusted. It will be forced to a 1x1 minimum size, and the adjust_size_allocation virtual method on the child will be used to adjust the allocation. Standard adjustments include removing the widgetâs margins, and applying the widgetâs #GtkWidget:halign and #GtkWidget:valign properties. For baseline support in containers you need to use gtk_widget_size_allocate_with_baseline() instead.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">position and size to be allocated to @widget</doc> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </method> <method name="size_allocate_with_baseline" c:identifier="gtk_widget_size_allocate_with_baseline" version="3.10"> <doc xml:space="preserve">This function is only used by #GtkContainer subclasses, to assign a size, position and (optionally) baseline to their child widgets. In this function, the allocation and baseline may be adjusted. It will be forced to a 1x1 minimum size, and the adjust_size_allocation virtual and adjust_baseline_allocation methods on the child will be used to adjust the allocation and baseline. Standard adjustments include removing the widget's margins, and applying the widgetâs #GtkWidget:halign and #GtkWidget:valign properties. If the child widget does not have a valign of %GTK_ALIGN_BASELINE the baseline argument is ignored and -1 is used instead.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">position and size to be allocated to @widget</doc> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> <parameter name="baseline" transfer-ownership="none"> <doc xml:space="preserve">The baseline of the child, or -1</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="size_request" c:identifier="gtk_widget_size_request" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">This function is typically used when implementing a #GtkContainer subclass. Obtains the preferred size of a widget. The container uses this information to arrange its child widgets and decide what size allocations to give them with gtk_widget_size_allocate(). You can also call this function from an application, with some caveats. Most notably, getting a size request requires the widget to be associated with a screen, because font information may be needed. Multihead-aware applications should keep this in mind. Also remember that the size request is not necessarily the size a widget will actually be allocated.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_preferred_size() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="requisition" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a #GtkRequisition to be filled in</doc> <type name="Requisition" c:type="GtkRequisition*"/> </parameter> </parameters> </method> <method name="style_attach" c:identifier="gtk_widget_style_attach" version="2.20" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">This function attaches the widgetâs #GtkStyle to the widget's #GdkWindow. It is a replacement for |[ widget->style = gtk_style_attach (widget->style, widget->window); ]| and should only ever be called in a derived widgetâs ârealizeâ implementation which does not chain up to its parent class' ârealizeâ implementation, because one of the parent classes (finally #GtkWidget) would attach the style itself.</doc> <doc-deprecated xml:space="preserve">This step is unnecessary with #GtkStyleContext.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="style_get" c:identifier="gtk_widget_style_get" introspectable="0"> <doc xml:space="preserve">Gets the values of a multiple style properties of @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">pairs of property names and locations to return the property values, starting with the location for @first_property_name, terminated by %NULL.</doc> <varargs/> </parameter> </parameters> </method> <method name="style_get_property" c:identifier="gtk_widget_style_get_property"> <doc xml:space="preserve">Gets the value of a style property of @widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of a style property</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">location to return the property value</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </method> <method name="style_get_valist" c:identifier="gtk_widget_style_get_valist" introspectable="0"> <doc xml:space="preserve">Non-vararg variant of gtk_widget_style_get(). Used primarily by language bindings.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first property to get</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="var_args" transfer-ownership="none"> <doc xml:space="preserve">a va_list of pairs of property names and locations to return the property values, starting with the location for @first_property_name.</doc> <type name="va_list" c:type="va_list"/> </parameter> </parameters> </method> <method name="thaw_child_notify" c:identifier="gtk_widget_thaw_child_notify"> <doc xml:space="preserve">Reverts the effect of a previous call to gtk_widget_freeze_child_notify(). This causes all queued #GtkWidget::child-notify signals on @widget to be emitted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="translate_coordinates" c:identifier="gtk_widget_translate_coordinates"> <doc xml:space="preserve">Translate coordinates relative to @src_widgetâs allocation to coordinates relative to @dest_widgetâs allocations. In order to perform this operation, both widgets must be realized, and must share a common toplevel.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE if either widget was not realized, or there was no common ancestor. In this case, nothing is stored in *@dest_x and *@dest_y. Otherwise %TRUE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="src_widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="dest_widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="src_x" transfer-ownership="none"> <doc xml:space="preserve">X position relative to @src_widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="src_y" transfer-ownership="none"> <doc xml:space="preserve">Y position relative to @src_widget</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="dest_x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store X position relative to @dest_widget</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="dest_y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store Y position relative to @dest_widget</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="trigger_tooltip_query" c:identifier="gtk_widget_trigger_tooltip_query" version="2.12"> <doc xml:space="preserve">Triggers a tooltip query on the display where the toplevel of @widget is located. See gtk_tooltip_trigger_tooltip_query() for more information.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="unmap" c:identifier="gtk_widget_unmap"> <doc xml:space="preserve">This function is only for use in widget implementations. Causes a widget to be unmapped if itâs currently mapped.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="unparent" c:identifier="gtk_widget_unparent"> <doc xml:space="preserve">This function is only for use in widget implementations. Should be called by implementations of the remove method on #GtkContainer, to dissociate a child from the container.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="unrealize" c:identifier="gtk_widget_unrealize"> <doc xml:space="preserve">This function is only useful in widget implementations. Causes a widget to be unrealized (frees all GDK resources associated with the widget, such as @widget->window).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> </parameters> </method> <method name="unregister_window" c:identifier="gtk_widget_unregister_window" version="3.8"> <doc xml:space="preserve">Unregisters a #GdkWindow from the widget that was previously set up with gtk_widget_register_window(). You need to call this when the window is no longer used by the widget, such as when you destroy it.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GdkWindow</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </method> <method name="unset_state_flags" c:identifier="gtk_widget_unset_state_flags" version="3.0"> <doc xml:space="preserve">This function is for use in widget implementations. Turns off flag values for the current widget state (insensitive, prelighted, etc.). See gtk_widget_set_state_flags().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </instance-parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">State flags to turn off</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> </parameters> </method> <property name="app-paintable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="can-default" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="can-focus" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="composite-child" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="double-buffered" version="2.18" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the widget is double buffered.</doc> <doc-deprecated xml:space="preserve">Widgets should not use this property.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="events" writable="1" transfer-ownership="none"> <type name="Gdk.EventMask"/> </property> <property name="expand" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to expand in both directions. Setting this sets both #GtkWidget:hexpand and #GtkWidget:vexpand</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="focus-on-click" version="3.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the widget should grab focus when it is clicked with the mouse. This property is only relevant for widgets that can take focus. Before 3.20, several widgets (GtkButton, GtkFileChooserButton, GtkComboBox) implemented this property individually.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="halign" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">How to distribute horizontal space if widget gets extra space, see #GtkAlign</doc> <type name="Align"/> </property> <property name="has-default" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-focus" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-tooltip" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Enables or disables the emission of #GtkWidget::query-tooltip on @widget. A value of %TRUE indicates that @widget can have a tooltip, in this case the widget will be queried using #GtkWidget::query-tooltip to determine whether it will provide a tooltip or not. Note that setting this property to %TRUE for the first time will change the event masks of the GdkWindows of this widget to include leave-notify and motion-notify events. This cannot and will not be undone when the property is set to %FALSE again.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="height-request" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="hexpand" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to expand horizontally. See gtk_widget_set_hexpand().</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="hexpand-set" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to use the #GtkWidget:hexpand property. See gtk_widget_get_hexpand_set().</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="is-focus" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="margin" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets all four sides' margin at once. If read, returns max margin on any side.</doc> <type name="gint" c:type="gint"/> </property> <property name="margin-bottom" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 gtk_widget_set_size_request() for example.</doc> <type name="gint" c:type="gint"/> </property> <property name="margin-end" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 gtk_widget_set_size_request() for example.</doc> <type name="gint" c:type="gint"/> </property> <property name="margin-left" version="3.0" deprecated="1" deprecated-version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Margin on left 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 gtk_widget_set_size_request() for example.</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget:margin-start instead.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="margin-right" version="3.0" deprecated="1" deprecated-version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Margin on right 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 gtk_widget_set_size_request() for example.</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget:margin-end instead.</doc-deprecated> <type name="gint" c:type="gint"/> </property> <property name="margin-start" version="3.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 gtk_widget_set_size_request() for example.</doc> <type name="gint" c:type="gint"/> </property> <property name="margin-top" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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 gtk_widget_set_size_request() for example.</doc> <type name="gint" c:type="gint"/> </property> <property name="name" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="no-show-all" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="opacity" version="3.8" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The requested opacity of the widget. See gtk_widget_set_opacity() for more details about window opacity. Before 3.8 this was only available in GtkWindow</doc> <type name="gdouble" c:type="gdouble"/> </property> <property name="parent" writable="1" transfer-ownership="none"> <type name="Container"/> </property> <property name="receives-default" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="scale-factor" version="3.10" transfer-ownership="none"> <doc xml:space="preserve">The scale factor of the widget. See gtk_widget_get_scale_factor() for more details about widget scaling.</doc> <type name="gint" c:type="gint"/> </property> <property name="sensitive" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="style" deprecated="1" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The style of the widget, which contains information about how it will look (colors, etc).</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <type name="Style"/> </property> <property name="tooltip-markup" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets the text of tooltip to be the given string, which is marked up with the [Pango text markup language][PangoMarkupFormat]. Also see 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: #GtkWidget:has-tooltip will automatically be set to %TRUE and there will be taken care of #GtkWidget::query-tooltip in the default signal handler. Note that if both #GtkWidget:tooltip-text and #GtkWidget:tooltip-markup are set, the last one wins.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="tooltip-text" version="2.12" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Sets the text of tooltip to be the given string. Also see 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: #GtkWidget:has-tooltip will automatically be set to %TRUE and there will be taken care of #GtkWidget::query-tooltip in the default signal handler. Note that if both #GtkWidget:tooltip-text and #GtkWidget:tooltip-markup are set, the last one wins.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="valign" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">How to distribute vertical space if widget gets extra space, see #GtkAlign</doc> <type name="Align"/> </property> <property name="vexpand" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to expand vertically. See gtk_widget_set_vexpand().</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="vexpand-set" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether to use the #GtkWidget:vexpand property. See gtk_widget_get_vexpand_set().</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="visible" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="width-request" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="window" version="2.14" transfer-ownership="none"> <doc xml:space="preserve">The widget's window if it is realized, %NULL otherwise.</doc> <type name="Gdk.Window"/> </property> <field name="parent_instance"> <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> </field> <field name="priv" readable="0" private="1"> <type name="WidgetPrivate" c:type="GtkWidgetPrivate*"/> </field> <glib:signal name="accel-closures-changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="button-press-event" when="last"> <doc xml:space="preserve">The ::button-press-event signal will be emitted when a button (typically from a mouse) is pressed. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_BUTTON_PRESS_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventButton which triggered this signal.</doc> <type name="Gdk.EventButton"/> </parameter> </parameters> </glib:signal> <glib:signal name="button-release-event" when="last"> <doc xml:space="preserve">The ::button-release-event signal will be emitted when a button (typically from a mouse) is released. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_BUTTON_RELEASE_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventButton which triggered this signal.</doc> <type name="Gdk.EventButton"/> </parameter> </parameters> </glib:signal> <glib:signal name="can-activate-accel" when="last"> <doc xml:space="preserve">Determines whether an accelerator that activates the signal identified by @signal_id can currently be activated. This signal is present to allow applications and derived widgets to override the default #GtkWidget handling for determining whether an accelerator can be activated.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal can be activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="signal_id" transfer-ownership="none"> <doc xml:space="preserve">the ID of a signal installed on @widget</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="child-notify" when="first" no-recurse="1" detailed="1" no-hooks="1"> <doc xml:space="preserve">The ::child-notify signal is emitted for each [child property][child-properties] that has changed on an object. The signal's detail holds the property name.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="child_property" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec of the changed child property</doc> <type name="GObject.ParamSpec"/> </parameter> </parameters> </glib:signal> <glib:signal name="composited-changed" when="last" action="1" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">The ::composited-changed signal is emitted when the composited status of @widgets screen changes. See gdk_screen_is_composited().</doc> <doc-deprecated xml:space="preserve">Use GdkScreen::composited-changed instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="configure-event" when="last"> <doc xml:space="preserve">The ::configure-event signal will be emitted when the size, position or stacking of the @widget's window has changed. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventConfigure which triggered this signal.</doc> <type name="Gdk.EventConfigure"/> </parameter> </parameters> </glib:signal> <glib:signal name="damage-event" when="last" version="2.14"> <doc xml:space="preserve">Emitted when a redirected window belonging to @widget gets drawn into. The region/area members of the event shows what area of the redirected drawable was drawn into.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventExpose event</doc> <type name="Gdk.EventExpose"/> </parameter> </parameters> </glib:signal> <glib:signal name="delete-event" when="last"> <doc xml:space="preserve">The ::delete-event signal is emitted if a user requests that a toplevel window is closed. The default handler for this signal destroys the window. Connecting gtk_widget_hide_on_delete() to this signal will cause the window to be hidden instead, so that it can later be shown again without reconstructing it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the event which triggered this signal</doc> <type name="Gdk.Event"/> </parameter> </parameters> </glib:signal> <glib:signal name="destroy" when="cleanup" no-recurse="1" no-hooks="1"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="destroy-event" when="last"> <doc xml:space="preserve">The ::destroy-event signal is emitted when a #GdkWindow is destroyed. You rarely get this signal, because most widgets disconnect themselves from their window before they destroy it, so no widget owns the window at destroy time. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the event which triggered this signal</doc> <type name="Gdk.Event"/> </parameter> </parameters> </glib:signal> <glib:signal name="direction-changed" when="first"> <doc xml:space="preserve">The ::direction-changed signal is emitted when the text direction of a widget changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="previous_direction" transfer-ownership="none"> <doc xml:space="preserve">the previous text direction of @widget</doc> <type name="TextDirection"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-begin" when="last"> <doc xml:space="preserve">The ::drag-begin signal is emitted on the drag source when a drag is started. A typical reason to connect to this signal is to set up a custom drag icon with e.g. gtk_drag_source_set_icon_pixbuf(). Note that some widgets set up a drag icon in the default handler of this signal, so you may have to use g_signal_connect_after() to override what the default handler did.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-data-delete" when="last"> <doc xml:space="preserve">The ::drag-data-delete signal is emitted on the drag source when a drag with the action %GDK_ACTION_MOVE is successfully completed. The signal handler is responsible for deleting the data that has been dropped. What "delete" means depends on the context of the drag operation.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-data-get" when="last"> <doc xml:space="preserve">The ::drag-data-get signal is emitted on the drag source when the drop site requests the data which is dragged. It is the responsibility of the signal handler to fill @data with the data in the format which is indicated by @info. See gtk_selection_data_set() and gtk_selection_data_set_text().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> <parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">the #GtkSelectionData to be filled with the dragged data</doc> <type name="SelectionData"/> </parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">the info that has been registered with the target in the #GtkTargetList</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="time" transfer-ownership="none"> <doc xml:space="preserve">the timestamp at which the data was requested</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-data-received" when="last"> <doc xml:space="preserve">The ::drag-data-received signal is emitted on the drop site when the dragged data has been received. If the data was received in order to determine whether the drop will be accepted, the handler is expected to call gdk_drag_status() and not finish the drag. If the data was received in response to a #GtkWidget::drag-drop signal (and this is the last target to be received), the handler for this signal is expected to process the received data and then call gtk_drag_finish(), setting the @success parameter depending on whether the data was processed successfully. Applications must create some means to determine why the signal was emitted and therefore whether to call gdk_drag_status() or gtk_drag_finish(). The handler may inspect the selected action with gdk_drag_context_get_selected_action() before calling gtk_drag_finish(), e.g. to implement %GDK_ACTION_ASK as shown in the following example: |[<!-- language="C" --> void drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { if ((data->length >= 0) && (data->format == 8)) { GdkDragAction action; // handle data here action = gdk_drag_context_get_selected_action (context); if (action == GDK_ACTION_ASK) { GtkWidget *dialog; gint response; dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_YES_NO, "Move the data ?\n"); response = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); if (response == GTK_RESPONSE_YES) action = GDK_ACTION_MOVE; else action = GDK_ACTION_COPY; } gtk_drag_finish (context, TRUE, action == GDK_ACTION_MOVE, time); } else gtk_drag_finish (context, FALSE, FALSE, time); } ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">where the drop happened</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">where the drop happened</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="data" transfer-ownership="none"> <doc xml:space="preserve">the received data</doc> <type name="SelectionData"/> </parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">the info that has been registered with the target in the #GtkTargetList</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="time" transfer-ownership="none"> <doc xml:space="preserve">the timestamp at which the data was received</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-drop" when="last"> <doc xml:space="preserve">The ::drag-drop signal is emitted on the drop site when the user drops the data onto the widget. The signal handler must determine whether the cursor 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, the handler must ensure that gtk_drag_finish() is called to let the source know that the drop is done. The call to gtk_drag_finish() can be done either directly or in a #GtkWidget::drag-data-received handler which gets triggered by calling gtk_drag_get_data() to receive the data for one or more of the supported targets.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the cursor position is in a drop zone</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x coordinate of the current cursor position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y coordinate of the current cursor position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="time" transfer-ownership="none"> <doc xml:space="preserve">the timestamp of the motion event</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-end" when="last"> <doc xml:space="preserve">The ::drag-end signal is emitted on the drag source when a drag is finished. A typical reason to connect to this signal is to undo things done in #GtkWidget::drag-begin.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-failed" when="last" version="2.12"> <doc xml:space="preserve">The ::drag-failed signal is emitted on the drag source when a drag has failed. The signal handler may hook custom code to handle a failed DnD operation based on the type of error, it returns %TRUE is the failure has been already handled (not showing the default "drag operation failed" animation), otherwise it returns %FALSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the failed drag operation has been already handled.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> <parameter name="result" transfer-ownership="none"> <doc xml:space="preserve">the result of the drag operation</doc> <type name="DragResult"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-leave" when="last"> <doc xml:space="preserve">The ::drag-leave signal is emitted on the drop site when the cursor leaves the widget. A typical reason to connect to this signal is to undo things done in #GtkWidget::drag-motion, e.g. undo highlighting with gtk_drag_unhighlight(). Likewise, the #GtkWidget::drag-leave signal is also emitted before the ::drag-drop signal, for instance to allow cleaning up of a preview item created in the #GtkWidget::drag-motion signal handler.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> <parameter name="time" transfer-ownership="none"> <doc xml:space="preserve">the timestamp of the motion event</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="drag-motion" when="last"> <doc xml:space="preserve">The ::drag-motion signal is emitted on the drop site when the user moves the cursor over the widget during a drag. The signal handler must determine whether the cursor 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, the handler is responsible for providing the necessary information for displaying feedback to the user, by calling gdk_drag_status(). If the decision whether the drop will be accepted or rejected can't be made based solely on the cursor position and the type of the data, the handler may inspect the dragged data by calling gtk_drag_get_data() and defer the gdk_drag_status() call to the #GtkWidget::drag-data-received handler. Note that you must pass #GTK_DEST_DEFAULT_DROP, #GTK_DEST_DEFAULT_MOTION or #GTK_DEST_DEFAULT_ALL to gtk_drag_dest_set() when using the drag-motion signal that way. Also note that there is no drag-enter signal. The drag receiver has to keep track of whether he has received any drag-motion signals since the last #GtkWidget::drag-leave and if not, treat the drag-motion signal as an "enter" signal. Upon an "enter", the handler will typically highlight the drop site with gtk_drag_highlight(). |[<!-- language="C" --> static void drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time) { GdkAtom target; PrivateData *private_data = GET_PRIVATE_DATA (widget); if (!private_data->drag_highlight) { private_data->drag_highlight = 1; gtk_drag_highlight (widget); } target = gtk_drag_dest_find_target (widget, context, NULL); if (target == GDK_NONE) gdk_drag_status (context, 0, time); else { private_data->pending_status = gdk_drag_context_get_suggested_action (context); gtk_drag_get_data (widget, context, target, time); } return TRUE; } static void drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time) { PrivateData *private_data = GET_PRIVATE_DATA (widget); if (private_data->suggested_action) { private_data->suggested_action = 0; // We are getting this data due to a request in drag_motion, // rather than due to a request in drag_drop, so we are just // supposed to call gdk_drag_status(), not actually paste in // the data. str = gtk_selection_data_get_text (selection_data); if (!data_is_acceptable (str)) gdk_drag_status (context, 0, time); else gdk_drag_status (context, private_data->suggested_action, time); } else { // accept the drop } } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the cursor position is in a drop zone</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x coordinate of the current cursor position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y coordinate of the current cursor position</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="time" transfer-ownership="none"> <doc xml:space="preserve">the timestamp of the motion event</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="draw" when="last" version="3.0"> <doc xml:space="preserve">This signal is emitted when a widget is supposed to render itself. The @widget's top left corner must be painted at the origin of the passed in context and be sized to the values returned by gtk_widget_get_allocated_width() and gtk_widget_get_allocated_height(). Signal handlers connected to this signal can modify the cairo context passed as @cr in any way they like and don't need to restore it. The signal emission takes care of calling cairo_save() before and cairo_restore() after invoking the handler. The signal handler will get a @cr with a clip region already set to the widget's dirty region, i.e. to the area that needs repainting. Complicated widgets that want to avoid redrawing themselves completely can get the full extents of the clip region with gdk_cairo_get_clip_rectangle(), or they can get a finer-grained representation of the dirty region with cairo_copy_clip_rectangle_list().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">the cairo context to draw to</doc> <type name="cairo.Context"/> </parameter> </parameters> </glib:signal> <glib:signal name="enter-notify-event" when="last"> <doc xml:space="preserve">The ::enter-notify-event will be emitted when the pointer enters the @widget's window. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_ENTER_NOTIFY_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventCrossing which triggered this signal.</doc> <type name="Gdk.EventCrossing"/> </parameter> </parameters> </glib:signal> <glib:signal name="event" when="last"> <doc xml:space="preserve">The GTK+ main loop will emit three signals for each GDK event delivered to a widget: one generic ::event signal, another, more specific, signal that matches the type of event delivered (e.g. #GtkWidget::key-press-event) and finally a generic #GtkWidget::event-after signal.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event and to cancel the emission of the second specific ::event signal. %FALSE to propagate the event further and to allow the emission of the second signal. The ::event-after signal is emitted regardless of the return value.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEvent which triggered this signal</doc> <type name="Gdk.Event"/> </parameter> </parameters> </glib:signal> <glib:signal name="event-after"> <doc xml:space="preserve">After the emission of the #GtkWidget::event signal and (optionally) the second more specific signal, ::event-after will be emitted regardless of the previous two signals handlers return values.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEvent which triggered this signal</doc> <type name="Gdk.Event"/> </parameter> </parameters> </glib:signal> <glib:signal name="focus" when="last"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="focus-in-event" when="last"> <doc xml:space="preserve">The ::focus-in-event signal will be emitted when the keyboard focus enters the @widget's window. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_FOCUS_CHANGE_MASK mask.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventFocus which triggered this signal.</doc> <type name="Gdk.EventFocus"/> </parameter> </parameters> </glib:signal> <glib:signal name="focus-out-event" when="last"> <doc xml:space="preserve">The ::focus-out-event signal will be emitted when the keyboard focus leaves the @widget's window. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_FOCUS_CHANGE_MASK mask.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventFocus which triggered this signal.</doc> <type name="Gdk.EventFocus"/> </parameter> </parameters> </glib:signal> <glib:signal name="grab-broken-event" when="last" version="2.8"> <doc xml:space="preserve">Emitted when a pointer or keyboard grab on a window belonging to @widget gets broken. On X11, this happens when the grab window becomes unviewable (i.e. it or one of its ancestors is unmapped), or if the same application grabs the pointer or keyboard again.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventGrabBroken event</doc> <type name="Gdk.EventGrabBroken"/> </parameter> </parameters> </glib:signal> <glib:signal name="grab-focus" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="grab-notify" when="first"> <doc xml:space="preserve">The ::grab-notify signal is emitted when a widget becomes shadowed by a GTK+ grab (not a pointer or keyboard grab) on another widget, or when it becomes unshadowed due to a grab being removed. A widget is shadowed by a gtk_grab_add() when the topmost grab widget in the grab stack of its window group is not its ancestor.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="was_grabbed" transfer-ownership="none"> <doc xml:space="preserve">%FALSE if the widget becomes shadowed, %TRUE if it becomes unshadowed</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="hide" when="first"> <doc xml:space="preserve">The ::hide signal is emitted when @widget is hidden, for example with gtk_widget_hide().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="hierarchy-changed" when="last"> <doc xml:space="preserve">The ::hierarchy-changed signal is emitted when the anchored state of a widget changes. A widget is âanchoredâ when its toplevel ancestor is a #GtkWindow. This signal is emitted when a widget changes from un-anchored to anchored or vice-versa.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="previous_toplevel" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the previous toplevel ancestor, or %NULL if the widget was previously unanchored</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="key-press-event" when="last"> <doc xml:space="preserve">The ::key-press-event signal is emitted when a key is pressed. The signal emission will reoccur at the key-repeat rate when the key is kept pressed. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_KEY_PRESS_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventKey which triggered this signal.</doc> <type name="Gdk.EventKey"/> </parameter> </parameters> </glib:signal> <glib:signal name="key-release-event" when="last"> <doc xml:space="preserve">The ::key-release-event signal is emitted when a key is released. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_KEY_RELEASE_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventKey which triggered this signal.</doc> <type name="Gdk.EventKey"/> </parameter> </parameters> </glib:signal> <glib:signal name="keynav-failed" when="last" version="2.12"> <doc xml:space="preserve">Gets emitted if keyboard navigation fails. See gtk_widget_keynav_failed() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%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).</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the direction of movement</doc> <type name="DirectionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="leave-notify-event" when="last"> <doc xml:space="preserve">The ::leave-notify-event will be emitted when the pointer leaves the @widget's window. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_LEAVE_NOTIFY_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventCrossing which triggered this signal.</doc> <type name="Gdk.EventCrossing"/> </parameter> </parameters> </glib:signal> <glib:signal name="map" when="first"> <doc xml:space="preserve">The ::map signal is emitted when @widget is going to be mapped, that is when the widget is visible (which is controlled with gtk_widget_set_visible()) and all its parents up to the toplevel widget are also visible. Once the map has occurred, #GtkWidget::map-event will be emitted. 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 #GtkWidget::unmap.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="map-event" when="last"> <doc xml:space="preserve">The ::map-event signal will be emitted when the @widget's window is mapped. A window is mapped when it becomes visible on the screen. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventAny which triggered this signal.</doc> <type name="Gdk.EventAny"/> </parameter> </parameters> </glib:signal> <glib:signal name="mnemonic-activate" when="last"> <doc xml:space="preserve">The default handler for this signal activates @widget if @group_cycling is %FALSE, or just makes @widget grab focus if @group_cycling is %TRUE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="group_cycling" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there are other widgets with the same mnemonic</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="motion-notify-event" when="last"> <doc xml:space="preserve">The ::motion-notify-event signal is emitted when the pointer moves over the widget's #GdkWindow. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_POINTER_MOTION_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventMotion which triggered this signal.</doc> <type name="Gdk.EventMotion"/> </parameter> </parameters> </glib:signal> <glib:signal name="move-focus" when="last" action="1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType"/> </parameter> </parameters> </glib:signal> <glib:signal name="parent-set" when="first"> <doc xml:space="preserve">The ::parent-set signal is emitted when a new parent has been set on a widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="old_parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the previous parent, or %NULL if the widget just got its initial parent.</doc> <type name="Widget"/> </parameter> </parameters> </glib:signal> <glib:signal name="popup-menu" when="last" action="1"> <doc xml:space="preserve">This signal gets emitted whenever a widget should pop up a context menu. This usually happens through the standard key binding mechanism; by pressing a certain key while a widget is focused, the user can cause the widget to pop up a menu. For example, the #GtkEntry widget creates a menu with clipboard commands. See the [Popup Menu Migration Checklist][checklist-popup-menu] for an example of how to use this signal.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a menu was activated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </glib:signal> <glib:signal name="property-notify-event" when="last"> <doc xml:space="preserve">The ::property-notify-event signal will be emitted when a property on the @widget's window has been changed or deleted. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_PROPERTY_CHANGE_MASK mask.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventProperty which triggered this signal.</doc> <type name="Gdk.EventProperty"/> </parameter> </parameters> </glib:signal> <glib:signal name="proximity-in-event" when="last"> <doc xml:space="preserve">To receive this signal the #GdkWindow associated to the widget needs to enable the #GDK_PROXIMITY_IN_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventProximity which triggered this signal.</doc> <type name="Gdk.EventProximity"/> </parameter> </parameters> </glib:signal> <glib:signal name="proximity-out-event" when="last"> <doc xml:space="preserve">To receive this signal the #GdkWindow associated to the widget needs to enable the #GDK_PROXIMITY_OUT_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventProximity which triggered this signal.</doc> <type name="Gdk.EventProximity"/> </parameter> </parameters> </glib:signal> <glib:signal name="query-tooltip" when="last" version="2.12"> <doc xml:space="preserve">Emitted when #GtkWidget:has-tooltip is %TRUE and the hover timeout has expired with the cursor hovering "above" @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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @tooltip should be shown right now, %FALSE otherwise.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x coordinate of the cursor position where the request has been emitted, relative to @widget's left side</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y coordinate of the cursor position where the request has been emitted, relative to @widget's top</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="keyboard_mode" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the tooltip was triggered using the keyboard</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="tooltip" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTooltip</doc> <type name="Tooltip"/> </parameter> </parameters> </glib:signal> <glib:signal name="realize" when="first"> <doc xml:space="preserve">The ::realize signal is emitted when @widget is associated with a #GdkWindow, which means that gtk_widget_realize() has been called or the widget has been mapped (that is, it is going to be drawn).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="screen-changed" when="last"> <doc xml:space="preserve">The ::screen-changed signal gets emitted when the screen of a widget has changed.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="previous_screen" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the previous screen, or %NULL if the widget was not associated with a screen before</doc> <type name="Gdk.Screen"/> </parameter> </parameters> </glib:signal> <glib:signal name="scroll-event" when="last"> <doc xml:space="preserve">The ::scroll-event signal is emitted when a button in the 4 to 7 range is pressed. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_SCROLL_MASK mask. This signal will be sent to the grab widget if there is one.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventScroll which triggered this signal.</doc> <type name="Gdk.EventScroll"/> </parameter> </parameters> </glib:signal> <glib:signal name="selection-clear-event" when="last"> <doc xml:space="preserve">The ::selection-clear-event signal will be emitted when the the @widget's window has lost ownership of a selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventSelection which triggered this signal.</doc> <type name="Gdk.EventSelection"/> </parameter> </parameters> </glib:signal> <glib:signal name="selection-get" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="data" transfer-ownership="none"> <type name="SelectionData"/> </parameter> <parameter name="info" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="time" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="selection-notify-event" when="last"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventSelection"/> </parameter> </parameters> </glib:signal> <glib:signal name="selection-received" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="data" transfer-ownership="none"> <type name="SelectionData"/> </parameter> <parameter name="time" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </glib:signal> <glib:signal name="selection-request-event" when="last"> <doc xml:space="preserve">The ::selection-request-event signal will be emitted when another client requests ownership of the selection owned by the @widget's window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventSelection which triggered this signal.</doc> <type name="Gdk.EventSelection"/> </parameter> </parameters> </glib:signal> <glib:signal name="show" when="first"> <doc xml:space="preserve">The ::show signal is emitted when @widget is shown, for example with gtk_widget_show().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="show-help" when="last" action="1"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="help_type" transfer-ownership="none"> <type name="WidgetHelpType"/> </parameter> </parameters> </glib:signal> <glib:signal name="size-allocate" when="first"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">the region which has been allocated to the widget.</doc> <type name="Allocation"/> </parameter> </parameters> </glib:signal> <glib:signal name="state-changed" when="first" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">The ::state-changed signal is emitted when the widget state changes. See gtk_widget_get_state().</doc> <doc-deprecated xml:space="preserve">Use #GtkWidget::state-flags-changed instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">the previous state</doc> <type name="StateType"/> </parameter> </parameters> </glib:signal> <glib:signal name="state-flags-changed" when="first" version="3.0"> <doc xml:space="preserve">The ::state-flags-changed signal is emitted when the widget state changes, see gtk_widget_get_state_flags().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">The previous state flags.</doc> <type name="StateFlags"/> </parameter> </parameters> </glib:signal> <glib:signal name="style-set" when="first" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">The ::style-set signal is emitted when a new style has been set on a widget. Note that style-modifying functions like gtk_widget_modify_base() also cause this signal to be emitted. Note that this signal is emitted for changes to the deprecated #GtkStyle. To track changes to the #GtkStyleContext associated with a widget, use the #GtkWidget::style-updated signal.</doc> <doc-deprecated xml:space="preserve">Use the #GtkWidget::style-updated signal</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="previous_style" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the previous style, or %NULL if the widget just got its initial style</doc> <type name="Style"/> </parameter> </parameters> </glib:signal> <glib:signal name="style-updated" when="first" version="3.0"> <doc xml:space="preserve">The ::style-updated signal is a convenience signal that is emitted when the #GtkStyleContext::changed signal is emitted on the @widget's associated #GtkStyleContext as returned by gtk_widget_get_style_context(). Note that style-modifying functions like gtk_widget_override_color() also cause this signal to be emitted.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="touch-event" when="last"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="Gdk.Event"/> </parameter> </parameters> </glib:signal> <glib:signal name="unmap" when="first"> <doc xml:space="preserve">The ::unmap signal is emitted when @widget is going to be unmapped, which means that 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="unmap-event" when="last"> <doc xml:space="preserve">The ::unmap-event signal will be emitted when the @widget's window is unmapped. A window is unmapped when it becomes invisible on the screen. To receive this signal, the #GdkWindow associated to the widget needs to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventAny which triggered this signal</doc> <type name="Gdk.EventAny"/> </parameter> </parameters> </glib:signal> <glib:signal name="unrealize" when="last"> <doc xml:space="preserve">The ::unrealize signal is emitted when the #GdkWindow associated with @widget is destroyed, which means that gtk_widget_unrealize() has been called or the widget has been unmapped (that is, it is going to be hidden).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="visibility-notify-event" when="last" deprecated="1" deprecated-version="3.12"> <doc xml:space="preserve">The ::visibility-notify-event will be emitted when the @widget's window is obscured or unobscured. To receive this signal the #GdkWindow associated to the widget needs to enable the #GDK_VISIBILITY_NOTIFY_MASK mask.</doc> <doc-deprecated xml:space="preserve">Modern composited windowing systems with pervasive transparency make it impossible to track the visibility of a window reliably, so this signal can not be guaranteed to provide useful information.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventVisibility which triggered this signal.</doc> <type name="Gdk.EventVisibility"/> </parameter> </parameters> </glib:signal> <glib:signal name="window-state-event" when="last"> <doc xml:space="preserve">The ::window-state-event will be emitted when the state of the toplevel window associated to the @widget changes. To receive this signal the #GdkWindow associated to the widget needs to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">the #GdkEventWindowState which triggered this signal.</doc> <type name="Gdk.EventWindowState"/> </parameter> </parameters> </glib:signal> </class> <class name="WidgetAccessible" c:symbol-prefix="widget_accessible" c:type="GtkWidgetAccessible" parent="Accessible" glib:type-name="GtkWidgetAccessible" glib:get-type="gtk_widget_accessible_get_type" glib:type-struct="WidgetAccessibleClass"> <implements name="Atk.Component"/> <field name="parent"> <type name="Accessible" c:type="GtkAccessible"/> </field> <field name="priv"> <type name="WidgetAccessiblePrivate" c:type="GtkWidgetAccessiblePrivate*"/> </field> </class> <record name="WidgetAccessibleClass" c:type="GtkWidgetAccessibleClass" glib:is-gtype-struct-for="WidgetAccessible"> <field name="parent_class"> <type name="AccessibleClass" c:type="GtkAccessibleClass"/> </field> <field name="notify_gtk"> <callback name="notify_gtk"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="pspec" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </callback> </field> </record> <record name="WidgetAccessiblePrivate" c:type="GtkWidgetAccessiblePrivate" disguised="1"> </record> <record name="WidgetClass" c:type="GtkWidgetClass" glib:is-gtype-struct-for="Widget"> <field name="parent_class"> <doc xml:space="preserve">The object class structure needs to be the first element in the widget class structure in order for the class mechanism to work correctly. This allows a GtkWidgetClass pointer to be cast to a GObjectClass pointer.</doc> <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> </field> <field name="activate_signal"> <doc xml:space="preserve">The signal to emit when a widget of this class is activated, gtk_widget_activate() handles the emission. Implementation of this signal is optional.</doc> <type name="guint" c:type="guint"/> </field> <field name="dispatch_child_properties_changed"> <callback name="dispatch_child_properties_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="n_pspecs" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="pspecs" transfer-ownership="none"> <type name="GObject.ParamSpec" c:type="GParamSpec**"/> </parameter> </parameters> </callback> </field> <field name="destroy"> <callback name="destroy"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="show"> <callback name="show"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="show_all"> <callback name="show_all"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="hide"> <callback name="hide"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="map"> <callback name="map"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="unmap"> <callback name="unmap"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="realize"> <callback name="realize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="unrealize"> <callback name="unrealize"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="size_allocate"> <callback name="size_allocate"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="allocation" transfer-ownership="none"> <doc xml:space="preserve">position and size to be allocated to @widget</doc> <type name="Allocation" c:type="GtkAllocation*"/> </parameter> </parameters> </callback> </field> <field name="state_changed"> <callback name="state_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="previous_state" transfer-ownership="none"> <type name="StateType" c:type="GtkStateType"/> </parameter> </parameters> </callback> </field> <field name="state_flags_changed"> <callback name="state_flags_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="previous_state_flags" transfer-ownership="none"> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> </parameters> </callback> </field> <field name="parent_set"> <callback name="parent_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="previous_parent" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="hierarchy_changed"> <callback name="hierarchy_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="previous_toplevel" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="style_set"> <callback name="style_set"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="previous_style" transfer-ownership="none"> <type name="Style" c:type="GtkStyle*"/> </parameter> </parameters> </callback> </field> <field name="direction_changed"> <callback name="direction_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="previous_direction" transfer-ownership="none"> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> </parameters> </callback> </field> <field name="grab_notify"> <callback name="grab_notify"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="was_grabbed" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="child_notify"> <callback name="child_notify"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="child_property" transfer-ownership="none"> <doc xml:space="preserve">the name of a child property installed on the class of @widgetâs parent</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </callback> </field> <field name="draw"> <callback name="draw"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> </parameters> </callback> </field> <field name="get_request_mode"> <callback name="get_request_mode"> <return-value transfer-ownership="none"> <doc xml:space="preserve">The #GtkSizeRequestMode preferred by @widget.</doc> <type name="SizeRequestMode" c:type="GtkSizeRequestMode"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_height"> <callback name="get_preferred_height"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_width_for_height"> <callback name="get_preferred_width_for_height"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_width"> <callback name="get_preferred_width"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the minimum width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the natural width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_height_for_width"> <callback name="get_preferred_height_for_width"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width which is available for allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="mnemonic_activate"> <callback name="mnemonic_activate"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the signal has been handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="group_cycling" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there are other widgets with the same mnemonic</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="grab_focus"> <callback name="grab_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="focus"> <callback name="focus"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </callback> </field> <field name="move_focus"> <callback name="move_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </callback> </field> <field name="keynav_failed"> <callback name="keynav_failed"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%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).</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">direction of focus movement</doc> <type name="DirectionType" c:type="GtkDirectionType"/> </parameter> </parameters> </callback> </field> <field name="event"> <callback name="event"> <return-value transfer-ownership="none"> <doc xml:space="preserve">return from the event signal emission (%TRUE if the event was handled)</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </callback> </field> <field name="button_press_event"> <callback name="button_press_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventButton" c:type="GdkEventButton*"/> </parameter> </parameters> </callback> </field> <field name="button_release_event"> <callback name="button_release_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventButton" c:type="GdkEventButton*"/> </parameter> </parameters> </callback> </field> <field name="scroll_event"> <callback name="scroll_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventScroll" c:type="GdkEventScroll*"/> </parameter> </parameters> </callback> </field> <field name="motion_notify_event"> <callback name="motion_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventMotion" c:type="GdkEventMotion*"/> </parameter> </parameters> </callback> </field> <field name="delete_event"> <callback name="delete_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventAny" c:type="GdkEventAny*"/> </parameter> </parameters> </callback> </field> <field name="destroy_event"> <callback name="destroy_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventAny" c:type="GdkEventAny*"/> </parameter> </parameters> </callback> </field> <field name="key_press_event"> <callback name="key_press_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </callback> </field> <field name="key_release_event"> <callback name="key_release_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </callback> </field> <field name="enter_notify_event"> <callback name="enter_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventCrossing" c:type="GdkEventCrossing*"/> </parameter> </parameters> </callback> </field> <field name="leave_notify_event"> <callback name="leave_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventCrossing" c:type="GdkEventCrossing*"/> </parameter> </parameters> </callback> </field> <field name="configure_event"> <callback name="configure_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventConfigure" c:type="GdkEventConfigure*"/> </parameter> </parameters> </callback> </field> <field name="focus_in_event"> <callback name="focus_in_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventFocus" c:type="GdkEventFocus*"/> </parameter> </parameters> </callback> </field> <field name="focus_out_event"> <callback name="focus_out_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventFocus" c:type="GdkEventFocus*"/> </parameter> </parameters> </callback> </field> <field name="map_event"> <callback name="map_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventAny" c:type="GdkEventAny*"/> </parameter> </parameters> </callback> </field> <field name="unmap_event"> <callback name="unmap_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventAny" c:type="GdkEventAny*"/> </parameter> </parameters> </callback> </field> <field name="property_notify_event"> <callback name="property_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventProperty" c:type="GdkEventProperty*"/> </parameter> </parameters> </callback> </field> <field name="selection_clear_event"> <callback name="selection_clear_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/> </parameter> </parameters> </callback> </field> <field name="selection_request_event"> <callback name="selection_request_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/> </parameter> </parameters> </callback> </field> <field name="selection_notify_event"> <callback name="selection_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/> </parameter> </parameters> </callback> </field> <field name="proximity_in_event"> <callback name="proximity_in_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventProximity" c:type="GdkEventProximity*"/> </parameter> </parameters> </callback> </field> <field name="proximity_out_event"> <callback name="proximity_out_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventProximity" c:type="GdkEventProximity*"/> </parameter> </parameters> </callback> </field> <field name="visibility_notify_event"> <callback name="visibility_notify_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventVisibility" c:type="GdkEventVisibility*"/> </parameter> </parameters> </callback> </field> <field name="window_state_event"> <callback name="window_state_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventWindowState" c:type="GdkEventWindowState*"/> </parameter> </parameters> </callback> </field> <field name="damage_event"> <callback name="damage_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventExpose" c:type="GdkEventExpose*"/> </parameter> </parameters> </callback> </field> <field name="grab_broken_event"> <callback name="grab_broken_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventGrabBroken" c:type="GdkEventGrabBroken*"/> </parameter> </parameters> </callback> </field> <field name="selection_get"> <callback name="selection_get"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="info" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="selection_received"> <callback name="selection_received"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="drag_begin"> <callback name="drag_begin"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </callback> </field> <field name="drag_end"> <callback name="drag_end"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </callback> </field> <field name="drag_data_get"> <callback name="drag_data_get"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="info" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="drag_data_delete"> <callback name="drag_data_delete"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </callback> </field> <field name="drag_leave"> <callback name="drag_leave"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="drag_motion"> <callback name="drag_motion"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="drag_drop"> <callback name="drag_drop"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="drag_data_received"> <callback name="drag_data_received"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="selection_data" transfer-ownership="none"> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="info" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> <parameter name="time_" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="drag_failed"> <callback name="drag_failed"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="context" transfer-ownership="none"> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="result" transfer-ownership="none"> <type name="DragResult" c:type="GtkDragResult"/> </parameter> </parameters> </callback> </field> <field name="popup_menu"> <callback name="popup_menu"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="show_help"> <callback name="show_help"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="help_type" transfer-ownership="none"> <type name="WidgetHelpType" c:type="GtkWidgetHelpType"/> </parameter> </parameters> </callback> </field> <field name="get_accessible"> <callback name="get_accessible"> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #AtkObject associated with @widget</doc> <type name="Atk.Object" c:type="AtkObject*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="screen_changed"> <callback name="screen_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="previous_screen" transfer-ownership="none"> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </callback> </field> <field name="can_activate_accel"> <callback name="can_activate_accel"> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the accelerator can be activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="signal_id" transfer-ownership="none"> <doc xml:space="preserve">the ID of a signal installed on @widget</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </callback> </field> <field name="composited_changed"> <callback name="composited_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="query_tooltip"> <callback name="query_tooltip"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="x" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <type name="gint" c:type="gint"/> </parameter> <parameter name="keyboard_tooltip" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="tooltip" transfer-ownership="none"> <type name="Tooltip" c:type="GtkTooltip*"/> </parameter> </parameters> </callback> </field> <field name="compute_expand"> <callback name="compute_expand"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="hexpand_p" transfer-ownership="none"> <type name="gboolean" c:type="gboolean*"/> </parameter> <parameter name="vexpand_p" transfer-ownership="none"> <type name="gboolean" c:type="gboolean*"/> </parameter> </parameters> </callback> </field> <field name="adjust_size_request"> <callback name="adjust_size_request"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="minimum_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="adjust_size_allocation"> <callback name="adjust_size_allocation"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <type name="Orientation" c:type="GtkOrientation"/> </parameter> <parameter name="minimum_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="allocated_pos" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="allocated_size" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="style_updated"> <callback name="style_updated"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="touch_event"> <callback name="touch_event"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <type name="Gdk.EventTouch" c:type="GdkEventTouch*"/> </parameter> </parameters> </callback> </field> <field name="get_preferred_height_and_baseline_for_width"> <callback name="get_preferred_height_and_baseline_for_width"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget instance</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width which is available for allocation, or -1 if none</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="minimum_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="minimum_baseline" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the baseline for the minimum height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_baseline" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location for storing the baseline for the natural height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="adjust_baseline_request"> <callback name="adjust_baseline_request"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="minimum_baseline" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> <parameter name="natural_baseline" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="adjust_baseline_allocation"> <callback name="adjust_baseline_allocation"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="baseline" transfer-ownership="none"> <type name="gint" c:type="gint*"/> </parameter> </parameters> </callback> </field> <field name="queue_draw_region"> <callback name="queue_draw_region"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="region" transfer-ownership="none"> <doc xml:space="preserve">region to draw</doc> <type name="cairo.Region" c:type="const cairo_region_t*"/> </parameter> </parameters> </callback> </field> <field name="priv" readable="0" private="1"> <type name="WidgetClassPrivate" c:type="GtkWidgetClassPrivate*"/> </field> <field name="_gtk_reserved6" introspectable="0"> <callback name="_gtk_reserved6"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved7" introspectable="0"> <callback name="_gtk_reserved7"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <method name="bind_template_callback_full" c:identifier="gtk_widget_class_bind_template_callback_full" version="3.10"> <doc xml:space="preserve">Declares a @callback_symbol to handle @callback_name from the template XML defined for @widget_type. See gtk_builder_add_callback_symbol(). Note that this must be called from a composite widget classes class initializer after calling gtk_widget_class_set_template().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="callback_name" transfer-ownership="none"> <doc xml:space="preserve">The name of the callback as expected in the template XML</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="callback_symbol" transfer-ownership="none" scope="async"> <doc xml:space="preserve">The callback symbol</doc> <type name="GObject.Callback" c:type="GCallback"/> </parameter> </parameters> </method> <method name="bind_template_child_full" c:identifier="gtk_widget_class_bind_template_child_full" version="3.10"> <doc xml:space="preserve">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 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 #GtkWidgetClass.destroy(). If @internal_child is specified, #GtkBuildableIface.get_internal_child() will be automatically implemented by the #GtkWidget class so there is no need to implement it manually. The wrapper macros gtk_widget_class_bind_template_child(), gtk_widget_class_bind_template_child_internal(), gtk_widget_class_bind_template_child_private() and 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 gtk_widget_class_set_template().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">The âidâ of the child defined in the template XML</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="internal_child" transfer-ownership="none"> <doc xml:space="preserve">Whether the child should be accessible as an âinternal-childâ when this class is used in GtkBuilder XML</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="struct_offset" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gssize" c:type="gssize"/> </parameter> </parameters> </method> <method name="find_style_property" c:identifier="gtk_widget_class_find_style_property" version="2.2"> <doc xml:space="preserve">Finds a style property of a widget class by name.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec of the style property or %NULL if @class has no style property with that name.</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </return-value> <parameters> <instance-parameter name="klass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the style property to find</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="get_css_name" c:identifier="gtk_widget_class_get_css_name" version="3.20"> <doc xml:space="preserve">Gets the name used by this class for matching in CSS code. See gtk_widget_class_set_css_name() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the CSS name of the given class</doc> <type name="utf8" c:type="const char*"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">class to set the name on</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> </parameters> </method> <method name="install_style_property" c:identifier="gtk_widget_class_install_style_property"> <doc xml:space="preserve">Installs a style property on a widget class. The parser for the style property is determined by the value type of @pspec.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="klass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec for the property</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> </parameters> </method> <method name="install_style_property_parser" c:identifier="gtk_widget_class_install_style_property_parser" introspectable="0"> <doc xml:space="preserve">Installs a style property on a widget class.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="klass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">the #GParamSpec for the style property</doc> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </parameter> <parameter name="parser" transfer-ownership="none"> <doc xml:space="preserve">the parser for the style property</doc> <type name="RcPropertyParser" c:type="GtkRcPropertyParser"/> </parameter> </parameters> </method> <method name="list_style_properties" c:identifier="gtk_widget_class_list_style_properties" version="2.2"> <doc xml:space="preserve">Returns all style properties of a widget class.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">a newly allocated array of #GParamSpec*. The array must be freed with g_free().</doc> <array length="0" zero-terminated="0" c:type="GParamSpec**"> <type name="GObject.ParamSpec" c:type="GParamSpec*"/> </array> </return-value> <parameters> <instance-parameter name="klass" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="n_properties" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to return the number of style properties found</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </method> <method name="set_accessible_role" c:identifier="gtk_widget_class_set_accessible_role" version="3.2"> <doc xml:space="preserve">Sets the default #AtkRole to be set on accessibles created for widgets of @widget_class. Accessibles may decide to not honor this setting if their role reporting is more refined. Calls to gtk_widget_class_set_accessible_type() will reset this value. In cases where you want more fine-grained control over the role of accessibles created for @widget_class, you should provide your own accessible type and use gtk_widget_class_set_accessible_type() instead. If @role is #ATK_ROLE_INVALID, the default role will not be changed and the accessibleâs default role will be used instead. This function should only be called from class init functions of widgets.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">class to set the accessible role for</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="role" transfer-ownership="none"> <doc xml:space="preserve">The role to use for accessibles created for @widget_class</doc> <type name="Atk.Role" c:type="AtkRole"/> </parameter> </parameters> </method> <method name="set_accessible_type" c:identifier="gtk_widget_class_set_accessible_type" version="3.2"> <doc xml:space="preserve">Sets the type to be used for creating accessibles for widgets of @widget_class. The given @type must be a subtype of the type used for accessibles of the parent class. This function should only be called from class init functions of widgets.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">class to set the accessible type for</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">The object type that implements the accessible for @widget_class</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </method> <method name="set_connect_func" c:identifier="gtk_widget_class_set_connect_func" version="3.10"> <doc xml:space="preserve">For use in language bindings, this will override the default #GtkBuilderConnectFunc 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 gtk_widget_class_set_template().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="connect_func" transfer-ownership="none" scope="notified" closure="1" destroy="2"> <doc xml:space="preserve">The #GtkBuilderConnectFunc to use when connecting signals in the class template</doc> <type name="BuilderConnectFunc" c:type="GtkBuilderConnectFunc"/> </parameter> <parameter name="connect_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">The data to pass to @connect_func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="connect_data_destroy" transfer-ownership="none" scope="async"> <doc xml:space="preserve">The #GDestroyNotify to free @connect_data, this will only be used at class finalization time, when no classes of type @widget_type are in use anymore.</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </method> <method name="set_css_name" c:identifier="gtk_widget_class_set_css_name" version="3.20"> <doc xml:space="preserve">Sets the name to be used for CSS matching of widgets. If this function is not called for a given class, the name of the parent class is used.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">class to set the name on</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name to use</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="set_template" c:identifier="gtk_widget_class_set_template" version="3.10"> <doc xml:space="preserve">This should be called at class initialization time to specify the GtkBuilder XML to be used to extend a widget. For convenience, gtk_widget_class_set_template_from_resource() is also provided. Note that any class that installs templates must call gtk_widget_init_template() in the widgetâs instance initializer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="template_bytes" transfer-ownership="none"> <doc xml:space="preserve">A #GBytes holding the #GtkBuilder XML</doc> <type name="GLib.Bytes" c:type="GBytes*"/> </parameter> </parameters> </method> <method name="set_template_from_resource" c:identifier="gtk_widget_class_set_template_from_resource" version="3.10"> <doc xml:space="preserve">A convenience function to call gtk_widget_class_set_template(). Note that any class that installs templates must call gtk_widget_init_template() in the widgetâs instance initializer.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="widget_class" transfer-ownership="none"> <doc xml:space="preserve">A #GtkWidgetClass</doc> <type name="WidgetClass" c:type="GtkWidgetClass*"/> </instance-parameter> <parameter name="resource_name" transfer-ownership="none"> <doc xml:space="preserve">The name of the resource to load the template from</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> </record> <record name="WidgetClassPrivate" c:type="GtkWidgetClassPrivate" disguised="1"> </record> <enumeration name="WidgetHelpType" glib:type-name="GtkWidgetHelpType" glib:get-type="gtk_widget_help_type_get_type" c:type="GtkWidgetHelpType"> <doc xml:space="preserve">Kinds of widget-specific help. Used by the ::show-help signal.</doc> <member name="tooltip" value="0" c:identifier="GTK_WIDGET_HELP_TOOLTIP" glib:nick="tooltip"> <doc xml:space="preserve">Tooltip.</doc> </member> <member name="whats_this" value="1" c:identifier="GTK_WIDGET_HELP_WHATS_THIS" glib:nick="whats-this"> <doc xml:space="preserve">Whatâs this.</doc> </member> </enumeration> <record name="WidgetPath" c:type="GtkWidgetPath" glib:type-name="GtkWidgetPath" glib:get-type="gtk_widget_path_get_type" c:symbol-prefix="widget_path"> <doc xml:space="preserve">GtkWidgetPath is a boxed type that represents a widget hierarchy from the topmost widget, typically a toplevel, to any child. This widget path abstraction is used in #GtkStyleContext on behalf of the real widget in order to query style information. If you are using GTK+ widgets, you probably will not need to use this API directly, as there is gtk_widget_get_path(), and the style context returned by gtk_widget_get_style_context() will be automatically updated on widget hierarchy changes. The widget path generation is generally simple: ## Defining a button within a window |[<!-- language="C" --> { GtkWidgetPath *path; path = gtk_widget_path_new (); gtk_widget_path_append_type (path, GTK_TYPE_WINDOW); gtk_widget_path_append_type (path, GTK_TYPE_BUTTON); } ]| Although more complex information, such as widget names, or different classes (property that may be used by other widget types) and intermediate regions may be included: ## Defining the first tab widget in a notebook |[<!-- language="C" --> { GtkWidgetPath *path; guint pos; path = gtk_widget_path_new (); pos = gtk_widget_path_append_type (path, GTK_TYPE_NOTEBOOK); gtk_widget_path_iter_add_region (path, pos, "tab", GTK_REGION_EVEN | GTK_REGION_FIRST); pos = gtk_widget_path_append_type (path, GTK_TYPE_LABEL); gtk_widget_path_iter_set_name (path, pos, "first tab label"); } ]| All this information will be used to match the style information that applies to the described widget.</doc> <constructor name="new" c:identifier="gtk_widget_path_new" version="3.0"> <doc xml:space="preserve">Returns an empty widget path.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A newly created, empty, #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </return-value> </constructor> <method name="append_for_widget" c:identifier="gtk_widget_path_append_for_widget" version="3.2"> <doc xml:space="preserve">Appends the data from @widget to the widget hierarchy represented by @path. This function is a shortcut for adding information from @widget to the given @path. This includes setting the name or adding the style classes from @widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the position where the data was inserted</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a widget path</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to append to the widget path</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="append_type" c:identifier="gtk_widget_path_append_type" version="3.0"> <doc xml:space="preserve">Appends a widget type to the widget hierarchy represented by @path.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the position where the element was inserted</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">widget type to append</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </method> <method name="append_with_siblings" c:identifier="gtk_widget_path_append_with_siblings" version="3.2"> <doc xml:space="preserve">Appends a widget type with all its siblings to the widget hierarchy represented by @path. Using this function instead of gtk_widget_path_append_type() will allow the CSS theming to use sibling matches in selectors and apply :nth-child() pseudo classes. In turn, it requires a lot more care in widget implementations as widgets need to make sure to call gtk_widget_reset_style() on all involved widgets when the @siblings path changes.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the position where the element was inserted.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the widget path to append to</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="siblings" transfer-ownership="none"> <doc xml:space="preserve">a widget path describing a list of siblings. This path may not contain any siblings itself and it must not be modified afterwards.</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </parameter> <parameter name="sibling_index" transfer-ownership="none"> <doc xml:space="preserve">index into @siblings for where the added element is positioned.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </method> <method name="copy" c:identifier="gtk_widget_path_copy" version="3.0"> <doc xml:space="preserve">Returns a copy of @path</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a copy of @path</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> </parameters> </method> <method name="free" c:identifier="gtk_widget_path_free" version="3.0"> <doc xml:space="preserve">Decrements the reference count on @path, freeing the structure if the reference count reaches 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> </parameters> </method> <method name="get_object_type" c:identifier="gtk_widget_path_get_object_type" version="3.0"> <doc xml:space="preserve">Returns the topmost object type, that is, the object type this path is representing.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The object type</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> </parameters> </method> <method name="has_parent" c:identifier="gtk_widget_path_has_parent" version="3.0"> <doc xml:space="preserve">Returns %TRUE if any of the parents of the widget represented in @path is of type @type, or any subtype of it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if any parent is of type @type</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">widget type to check in parents</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </method> <method name="is_type" c:identifier="gtk_widget_path_is_type" version="3.0"> <doc xml:space="preserve">Returns %TRUE if the widget type represented by this path is @type, or a subtype of it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget represented by @path is of type @type</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">widget type to match</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </method> <method name="iter_add_class" c:identifier="gtk_widget_path_iter_add_class" version="3.0"> <doc xml:space="preserve">Adds the class @name to the widget at position @pos in the hierarchy defined in @path. See gtk_style_context_add_class().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">a class name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="iter_add_region" c:identifier="gtk_widget_path_iter_add_region" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Adds the region @name to the widget at position @pos in the hierarchy defined in @path. See gtk_style_context_add_region(). Region names must only contain lowercase letters and â-â, starting always with a lowercase letter.</doc> <doc-deprecated xml:space="preserve">The use of regions is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">region name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags" transfer-ownership="none"> <doc xml:space="preserve">flags affecting the region</doc> <type name="RegionFlags" c:type="GtkRegionFlags"/> </parameter> </parameters> </method> <method name="iter_clear_classes" c:identifier="gtk_widget_path_iter_clear_classes" version="3.0"> <doc xml:space="preserve">Removes all classes from the widget at position @pos in the hierarchy defined in @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_clear_regions" c:identifier="gtk_widget_path_iter_clear_regions" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Removes all regions from the widget at position @pos in the hierarchy defined in @path.</doc> <doc-deprecated xml:space="preserve">The use of regions is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_get_name" c:identifier="gtk_widget_path_iter_get_name"> <doc xml:space="preserve">Returns the name corresponding to the widget found at the position @pos in the widget hierarchy defined by @path</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The widget name, or %NULL if none was set.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to get the widget name for, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_get_object_name" c:identifier="gtk_widget_path_iter_get_object_name" version="3.20"> <doc xml:space="preserve">Returns the object name that is at position @pos in the widget hierarchy defined in @path.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the name or %NULL</doc> <type name="utf8" c:type="const char*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to get the object name for, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_get_object_type" c:identifier="gtk_widget_path_iter_get_object_type" version="3.0"> <doc xml:space="preserve">Returns the object #GType that is at position @pos in the widget hierarchy defined in @path.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a widget type</doc> <type name="GType" c:type="GType"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to get the object type for, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_get_sibling_index" c:identifier="gtk_widget_path_iter_get_sibling_index"> <doc xml:space="preserve">Returns the index into the list of siblings for the element at @pos as returned by gtk_widget_path_iter_get_siblings(). If that function would return %NULL because the element at @pos has no siblings, this function will return 0.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">0 or the index into the list of siblings for the element at @pos.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to get the sibling index for, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_get_siblings" c:identifier="gtk_widget_path_iter_get_siblings"> <doc xml:space="preserve">Returns the list of siblings for the element at @pos. If the element was not added with siblings, %NULL is returned.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%NULL or the list of siblings for the element at @pos.</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to get the siblings for, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_get_state" c:identifier="gtk_widget_path_iter_get_state" version="3.14"> <doc xml:space="preserve">Returns the state flags corresponding to the widget found at the position @pos in the widget hierarchy defined by @path</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The state flags</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to get the state for, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_has_class" c:identifier="gtk_widget_path_iter_has_class" version="3.0"> <doc xml:space="preserve">Returns %TRUE if the widget at position @pos has the class @name defined, %FALSE otherwise.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the class @name is defined for the widget at @pos</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to query, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">class name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="iter_has_name" c:identifier="gtk_widget_path_iter_has_name" version="3.0"> <doc xml:space="preserve">Returns %TRUE if the widget at position @pos has the name @name, %FALSE otherwise.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget at @pos has this name</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to query, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">a widget name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="iter_has_qclass" c:identifier="gtk_widget_path_iter_has_qclass" version="3.0"> <doc xml:space="preserve">See gtk_widget_path_iter_has_class(). This is a version that operates with GQuarks.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget at @pos has the class defined.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to query, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="qname" transfer-ownership="none"> <doc xml:space="preserve">class name as a #GQuark</doc> <type name="GLib.Quark" c:type="GQuark"/> </parameter> </parameters> </method> <method name="iter_has_qname" c:identifier="gtk_widget_path_iter_has_qname" version="3.0"> <doc xml:space="preserve">See gtk_widget_path_iter_has_name(). This is a version that operates on #GQuarks.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget at @pos has this name</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to query, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="qname" transfer-ownership="none"> <doc xml:space="preserve">widget name as a #GQuark</doc> <type name="GLib.Quark" c:type="GQuark"/> </parameter> </parameters> </method> <method name="iter_has_qregion" c:identifier="gtk_widget_path_iter_has_qregion" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">See gtk_widget_path_iter_has_region(). This is a version that operates with GQuarks.</doc> <doc-deprecated xml:space="preserve">The use of regions is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the widget at @pos has the region defined.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to query, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="qname" transfer-ownership="none"> <doc xml:space="preserve">region name as a #GQuark</doc> <type name="GLib.Quark" c:type="GQuark"/> </parameter> <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the region flags</doc> <type name="RegionFlags" c:type="GtkRegionFlags*"/> </parameter> </parameters> </method> <method name="iter_has_region" c:identifier="gtk_widget_path_iter_has_region" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns %TRUE if the widget at position @pos has the class @name defined, %FALSE otherwise.</doc> <doc-deprecated xml:space="preserve">The use of regions is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the class @name is defined for the widget at @pos</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to query, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">region name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the region flags</doc> <type name="RegionFlags" c:type="GtkRegionFlags*"/> </parameter> </parameters> </method> <method name="iter_list_classes" c:identifier="gtk_widget_path_iter_list_classes" version="3.0"> <doc xml:space="preserve">Returns a list with all the class names defined for the widget at position @pos in the hierarchy defined in @path.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">The list of classes, This is a list of strings, the #GSList contents are owned by GTK+, but you should use g_slist_free() to free the list itself.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="utf8"/> </type> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to query, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_list_regions" c:identifier="gtk_widget_path_iter_list_regions" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Returns a list with all the region names defined for the widget at position @pos in the hierarchy defined in @path.</doc> <doc-deprecated xml:space="preserve">The use of regions is deprecated.</doc-deprecated> <return-value transfer-ownership="container"> <doc xml:space="preserve">The list of regions, This is a list of strings, the #GSList contents are owned by GTK+, but you should use g_slist_free() to free the list itself.</doc> <type name="GLib.SList" c:type="GSList*"> <type name="utf8"/> </type> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to query, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="iter_remove_class" c:identifier="gtk_widget_path_iter_remove_class" version="3.0"> <doc xml:space="preserve">Removes the class @name from the widget at position @pos in the hierarchy defined in @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">class name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="iter_remove_region" c:identifier="gtk_widget_path_iter_remove_region" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Removes the region @name from the widget at position @pos in the hierarchy defined in @path.</doc> <doc-deprecated xml:space="preserve">The use of regions is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">region name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="iter_set_name" c:identifier="gtk_widget_path_iter_set_name" version="3.0"> <doc xml:space="preserve">Sets the widget name for the widget found at position @pos in the widget hierarchy defined by @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">widget name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="iter_set_object_name" c:identifier="gtk_widget_path_iter_set_object_name" version="3.20"> <doc xml:space="preserve">Sets the object name for a given position in the widget hierarchy defined by @path. When set, the object name overrides the object type when matching CSS.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">object name to set or %NULL to unset</doc> <type name="utf8" c:type="const char*"/> </parameter> </parameters> </method> <method name="iter_set_object_type" c:identifier="gtk_widget_path_iter_set_object_type" version="3.0"> <doc xml:space="preserve">Sets the object type for a given position in the widget hierarchy defined by @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">object type to set</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </method> <method name="iter_set_state" c:identifier="gtk_widget_path_iter_set_state" version="3.14"> <doc xml:space="preserve">Sets the widget name for the widget found at position @pos in the widget hierarchy defined by @path. If you want to update just a single state flag, you need to do this manually, as this function updates all state flags. ## Setting a flag |[<!-- language="C" --> gtk_widget_path_iter_set_state (path, pos, gtk_widget_path_iter_get_state (path, pos) | flag); ]| ## Unsetting a flag |[<!-- language="C" --> gtk_widget_path_iter_set_state (path, pos, gtk_widget_path_iter_get_state (path, pos) & ~flag); ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="pos" transfer-ownership="none"> <doc xml:space="preserve">position to modify, -1 for the path head</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="state" transfer-ownership="none"> <doc xml:space="preserve">state flags</doc> <type name="StateFlags" c:type="GtkStateFlags"/> </parameter> </parameters> </method> <method name="length" c:identifier="gtk_widget_path_length" version="3.0"> <doc xml:space="preserve">Returns the number of #GtkWidget #GTypes between the represented widget and its topmost container.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the number of elements in the path</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> </parameters> </method> <method name="prepend_type" c:identifier="gtk_widget_path_prepend_type" version="3.0"> <doc xml:space="preserve">Prepends a widget type to the widget hierachy represented by @path.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">widget type to prepend</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </method> <method name="ref" c:identifier="gtk_widget_path_ref" version="3.2"> <doc xml:space="preserve">Increments the reference count on @path.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">@path itself.</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> </parameters> </method> <method name="to_string" c:identifier="gtk_widget_path_to_string" version="3.2"> <doc xml:space="preserve">Dumps the widget path into a string representation. It tries to match the CSS style as closely as possible (Note that there might be paths that cannot be represented in CSS). The main use of this code is for debugging purposes, so that you can g_print() the path or dump it in a gdb session.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">A new string describing @path.</doc> <type name="utf8" c:type="char*"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the path</doc> <type name="WidgetPath" c:type="const GtkWidgetPath*"/> </instance-parameter> </parameters> </method> <method name="unref" c:identifier="gtk_widget_path_unref" version="3.2"> <doc xml:space="preserve">Decrements the reference count on @path, freeing the structure if the reference count reaches 0.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidgetPath</doc> <type name="WidgetPath" c:type="GtkWidgetPath*"/> </instance-parameter> </parameters> </method> </record> <record name="WidgetPrivate" c:type="GtkWidgetPrivate" disguised="1"> </record> <class name="Window" c:symbol-prefix="window" c:type="GtkWindow" parent="Bin" glib:type-name="GtkWindow" glib:get-type="gtk_window_get_type" glib:type-struct="WindowClass"> <doc xml:space="preserve">A GtkWindow is a toplevel window which can contain other widgets. Windows normally have decorations that are under the control of the windowing system and allow the user to manipulate the window (resize it, move it, close it,...). # GtkWindow as GtkBuildable The GtkWindow implementation of the GtkBuildable interface supports a custom <accel-groups> element, which supports any number of <group> elements representing the #GtkAccelGroup objects you want to add to your window (synonymous with gtk_window_add_accel_group(). It also supports the <initial-focus> element, whose name property names the widget to receive the focus when the window is mapped. An example of a UI definition fragment with accel groups: |[ <object class="GtkWindow"> <accel-groups> <group name="accelgroup1"/> </accel-groups> <initial-focus name="thunderclap"/> </object> ... <object class="GtkAccelGroup" id="accelgroup1"/> ]| The GtkWindow implementation of the GtkBuildable interface supports setting a child as the titlebar by specifying âtitlebarâ as the âtypeâ attribute of a <child> element. # CSS nodes |[<!-- language="plain" --> window.background âââ decoration âââ <titlebar child>.titlebar [.default-decoration] â°ââ <child> ]| GtkWindow has a main CSS node with name window and style class .background, and a subnode with name decoration. Style classes that are typically used with the main CSS node are .csd (when client-side decorations are in use), .solid-csd (for client-side decorations without invisible borders), .ssd (used by mutter when rendering server-side decorations). GtkWindow also represents window states with the following style classes on the main node: .tiled, .maximized, .fullscreen. Specialized types of window often add their own discriminating style classes, such as .popup or .tooltip. GtkWindow adds the .titlebar and .default-decoration style classes to the widget that is added as a titlebar child.</doc> <implements name="Atk.ImplementorIface"/> <implements name="Buildable"/> <constructor name="new" c:identifier="gtk_window_new"> <doc xml:space="preserve">Creates a new #GtkWindow, which is a toplevel window that can contain other widgets. Nearly always, the type of the window should be #GTK_WINDOW_TOPLEVEL. If youâre implementing something like a popup menu from scratch (which is a bad idea, just use #GtkMenu), you might use #GTK_WINDOW_POPUP. #GTK_WINDOW_POPUP is not for dialogs, though in some other toolkits dialogs are called âpopupsâ. In GTK+, #GTK_WINDOW_POPUP means a pop-up menu or pop-up tooltip. On X11, popup windows are not controlled by the [window manager][gtk-X11-arch]. If you simply want an undecorated window (no window borders), use gtk_window_set_decorated(), donât use #GTK_WINDOW_POPUP. All top-level windows created by gtk_window_new() are stored in an internal top-level window list. This list can be obtained from 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 gtk_widget_destroy().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a new #GtkWindow.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">type of window</doc> <type name="WindowType" c:type="GtkWindowType"/> </parameter> </parameters> </constructor> <function name="get_default_icon_list" c:identifier="gtk_window_get_default_icon_list"> <doc xml:space="preserve">Gets the value set by gtk_window_set_default_icon_list(). The list is a copy and should be freed with g_list_free(), but the pixbufs in the list have not had their reference count incremented.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">copy of default icon list</doc> <type name="GLib.List" c:type="GList*"> <type name="GdkPixbuf.Pixbuf"/> </type> </return-value> </function> <function name="get_default_icon_name" c:identifier="gtk_window_get_default_icon_name" version="2.16"> <doc xml:space="preserve">Returns the fallback icon name for windows that has been set with gtk_window_set_default_icon_name(). The returned string is owned by GTK+ and should not be modified. It is only valid until the next call to gtk_window_set_default_icon_name().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the fallback icon name for windows</doc> <type name="utf8" c:type="const gchar*"/> </return-value> </function> <function name="list_toplevels" c:identifier="gtk_window_list_toplevels"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">list of toplevel widgets</doc> <type name="GLib.List" c:type="GList*"> <type name="Widget"/> </type> </return-value> </function> <function name="set_auto_startup_notification" c:identifier="gtk_window_set_auto_startup_notification" version="2.2"> <doc xml:space="preserve">By default, after showing the first #GtkWindow, GTK+ calls gdk_notify_startup_complete(). 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to automatically do startup notification</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="set_default_icon" c:identifier="gtk_window_set_default_icon" version="2.4"> <doc xml:space="preserve">Sets an icon to be used as fallback for windows that haven't had gtk_window_set_icon() called on them from a pixbuf.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">the icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </function> <function name="set_default_icon_from_file" c:identifier="gtk_window_set_default_icon_from_file" version="2.2" throws="1"> <doc xml:space="preserve">Sets an icon to be used as fallback for windows that haven't had gtk_window_set_icon_list() called on them from a file on disk. Warns on failure if @err is %NULL.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if setting the icon succeeded.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">location of icon file</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="set_default_icon_list" c:identifier="gtk_window_set_default_icon_list"> <doc xml:space="preserve">Sets an icon list to be used as fallback for windows that haven't had gtk_window_set_icon_list() called on them to set up a window-specific icon list. This function allows you to set up the icon for all windows in your app at once. See gtk_window_set_icon_list() for more details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="list" transfer-ownership="container"> <doc xml:space="preserve">a list of #GdkPixbuf</doc> <type name="GLib.List" c:type="GList*"> <type name="GdkPixbuf.Pixbuf"/> </type> </parameter> </parameters> </function> <function name="set_default_icon_name" c:identifier="gtk_window_set_default_icon_name" version="2.6"> <doc xml:space="preserve">Sets an icon to be used as fallback for windows that haven't had gtk_window_set_icon_list() called on them from a named themed icon, see gtk_window_set_icon_name().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name of the themed icon</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="set_interactive_debugging" c:identifier="gtk_window_set_interactive_debugging" version="3.14"> <doc xml:space="preserve">Opens or closes the [interactive debugger][interactive-debugging], which offers access to the widget hierarchy of the application and to useful debugging tools.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="enable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to enable interactive debugging</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <virtual-method name="activate_default"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="activate_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="enable_debugging"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="toggle" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </virtual-method> <virtual-method name="keys_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </virtual-method> <virtual-method name="set_focus" invoker="set_focus"> <doc xml:space="preserve">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 gtk_widget_grab_focus() instead of this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="focus" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">widget to be the new focus widget, or %NULL to unset any focus widget for the toplevel window.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </virtual-method> <method name="activate_default" c:identifier="gtk_window_activate_default"> <doc xml:space="preserve">Activates the default widget for the window, unless the current focused widget has been configured to receive the default action (see gtk_widget_set_receives_default()), in which case the focused widget is activated.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a widget got activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="activate_focus" c:identifier="gtk_window_activate_focus"> <doc xml:space="preserve">Activates the current focused widget within the window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a widget got activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="activate_key" c:identifier="gtk_window_activate_key" version="2.4"> <doc xml:space="preserve">Activates mnemonics and accelerators for this #GtkWindow. This is normally called by the default ::key_press_event handler for toplevel windows, however in some cases it may be useful to call this directly when overriding the standard key handling for a toplevel window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a mnemonic or accelerator was found and activated.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEventKey</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </method> <method name="add_accel_group" c:identifier="gtk_window_add_accel_group"> <doc xml:space="preserve">Associate @accel_group with @window, such that calling gtk_accel_groups_activate() on @window will activate accelerators in @accel_group.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">window to attach accelerator group to</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> </parameters> </method> <method name="add_mnemonic" c:identifier="gtk_window_add_mnemonic"> <doc xml:space="preserve">Adds a mnemonic to this window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">the mnemonic</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">the widget that gets activated by the mnemonic</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="begin_move_drag" c:identifier="gtk_window_begin_move_drag"> <doc xml:space="preserve">Starts moving a window. This function is used if an application has window movement grips. When GDK can support it, the window movement will be done using the standard mechanism for the [window manager][gtk-X11-arch] or windowing system. Otherwise, GDK will try to emulate window movement, potentially not all that well, depending on the windowing system.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">mouse button that initiated the drag</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="root_x" transfer-ownership="none"> <doc xml:space="preserve">X position where the user clicked to initiate the drag, in root window coordinates</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="root_y" transfer-ownership="none"> <doc xml:space="preserve">Y position where the user clicked to initiate the drag</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="timestamp" transfer-ownership="none"> <doc xml:space="preserve">timestamp from the click event that initiated the drag</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </method> <method name="begin_resize_drag" c:identifier="gtk_window_begin_resize_drag"> <doc xml:space="preserve">Starts resizing a window. This function is used if an application has window resizing controls. When GDK can support it, the resize will be done using the standard mechanism for the [window manager][gtk-X11-arch] or windowing system. Otherwise, GDK will try to emulate window resizing, potentially not all that well, depending on the windowing system.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="edge" transfer-ownership="none"> <doc xml:space="preserve">position of the resize control</doc> <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/> </parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">mouse button that initiated the drag</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="root_x" transfer-ownership="none"> <doc xml:space="preserve">X position where the user clicked to initiate the drag, in root window coordinates</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="root_y" transfer-ownership="none"> <doc xml:space="preserve">Y position where the user clicked to initiate the drag</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="timestamp" transfer-ownership="none"> <doc xml:space="preserve">timestamp from the click event that initiated the drag</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </method> <method name="close" c:identifier="gtk_window_close" version="3.10"> <doc xml:space="preserve">Requests that the window is closed, similar to what happens when a window manager close button is clicked. This function can be used with close buttons in custom titlebars.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="deiconify" c:identifier="gtk_window_deiconify"> <doc xml:space="preserve">Asks to deiconify (i.e. unminimize) the specified @window. Note that you shouldnât assume the window is definitely deiconified afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch])) could iconify it again before your code which assumes deiconification gets to run. You can track iconification via the âwindow-state-eventâ signal on #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="fullscreen" c:identifier="gtk_window_fullscreen" version="2.2"> <doc xml:space="preserve">Asks to place @window in the fullscreen state. Note that you shouldnât assume the window is definitely full screen afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could unfullscreen it again, and not all window managers honor requests to fullscreen windows. But normally the window will end up fullscreen. Just donât write code that crashes if not. You can track the fullscreen state via the âwindow-state-eventâ signal on #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="fullscreen_on_monitor" c:identifier="gtk_window_fullscreen_on_monitor" version="3.18"> <doc xml:space="preserve">Asks to place @window in the fullscreen state. Note that you shouldn't assume the window is definitely full screen afterward. You can track the fullscreen state via the "window-state-event" signal on #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen to draw to</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> <parameter name="monitor" transfer-ownership="none"> <doc xml:space="preserve">which monitor to go fullscreen on</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="get_accept_focus" c:identifier="gtk_window_get_accept_focus" version="2.4"> <doc xml:space="preserve">Gets the value set by gtk_window_set_accept_focus().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if window should receive the input focus</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_application" c:identifier="gtk_window_get_application" version="3.0"> <doc xml:space="preserve">Gets the #GtkApplication associated with the window (if any).</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GtkApplication, or %NULL</doc> <type name="Application" c:type="GtkApplication*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_attached_to" c:identifier="gtk_window_get_attached_to" version="3.4"> <doc xml:space="preserve">Fetches the attach widget for this window. See gtk_window_set_attached_to().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the widget where the window is attached, or %NULL if the window is not attached to any widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_decorated" c:identifier="gtk_window_get_decorated"> <doc xml:space="preserve">Returns whether the window has been set to have decorations such as a title bar via gtk_window_set_decorated().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the window has been set to have decorations</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_default_size" c:identifier="gtk_window_get_default_size"> <doc xml:space="preserve">Gets the default size of the window. A value of -1 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the default width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store the default height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_default_widget" c:identifier="gtk_window_get_default_widget" version="2.14"> <doc xml:space="preserve">Returns the default widget for @window. See gtk_window_set_default() for more details.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the default widget, or %NULL if there is none.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_deletable" c:identifier="gtk_window_get_deletable" version="2.10"> <doc xml:space="preserve">Returns whether the window has been set to have a close button via gtk_window_set_deletable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the window has been set to have a close button</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_destroy_with_parent" c:identifier="gtk_window_get_destroy_with_parent"> <doc xml:space="preserve">Returns whether the window will be destroyed with its transient parent. See gtk_window_set_destroy_with_parent ().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the window will be destroyed with its transient parent.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_focus" c:identifier="gtk_window_get_focus"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the currently focused widget, or %NULL if there is none.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_focus_on_map" c:identifier="gtk_window_get_focus_on_map" version="2.6"> <doc xml:space="preserve">Gets the value set by gtk_window_set_focus_on_map().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if window should receive the input focus when mapped.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_focus_visible" c:identifier="gtk_window_get_focus_visible" version="3.2"> <doc xml:space="preserve">Gets the value of the #GtkWindow:focus-visible property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if âfocus rectanglesâ are supposed to be visible in this window.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_gravity" c:identifier="gtk_window_get_gravity"> <doc xml:space="preserve">Gets the value set by gtk_window_set_gravity().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">window gravity</doc> <type name="Gdk.Gravity" c:type="GdkGravity"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_group" c:identifier="gtk_window_get_group" version="2.10"> <doc xml:space="preserve">Returns the group for @window or the default group, if @window is %NULL or if @window does not have an explicit window group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkWindowGroup for a window or the default group</doc> <type name="WindowGroup" c:type="GtkWindowGroup*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWindow, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_has_resize_grip" c:identifier="gtk_window_get_has_resize_grip" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Determines whether the window may have a resize grip.</doc> <doc-deprecated xml:space="preserve">Resize grips have been removed.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the window has a resize grip</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_hide_titlebar_when_maximized" c:identifier="gtk_window_get_hide_titlebar_when_maximized" version="3.4"> <doc xml:space="preserve">Returns whether the window has requested to have its titlebar hidden when maximized. See gtk_window_set_hide_titlebar_when_maximized ().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the window has requested to have its titlebar hidden when maximized</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_icon" c:identifier="gtk_window_get_icon"> <doc xml:space="preserve">Gets the value set by gtk_window_set_icon() (or if you've called gtk_window_set_icon_list(), gets the first icon in the icon list).</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">icon for window or %NULL if none</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_icon_list" c:identifier="gtk_window_get_icon_list"> <doc xml:space="preserve">Retrieves the list of icons set by gtk_window_set_icon_list(). The list is copied, but the reference count on each member wonât be incremented.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">copy of windowâs icon list</doc> <type name="GLib.List" c:type="GList*"> <type name="GdkPixbuf.Pixbuf"/> </type> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_icon_name" c:identifier="gtk_window_get_icon_name" version="2.6"> <doc xml:space="preserve">Returns the name of the themed icon for the window, see gtk_window_set_icon_name().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the icon name or %NULL if the window has no themed icon</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_mnemonic_modifier" c:identifier="gtk_window_get_mnemonic_modifier"> <doc xml:space="preserve">Returns the mnemonic modifier for this window. See gtk_window_set_mnemonic_modifier().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the modifier mask used to activate mnemonics on this window.</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_mnemonics_visible" c:identifier="gtk_window_get_mnemonics_visible" version="2.20"> <doc xml:space="preserve">Gets the value of the #GtkWindow:mnemonics-visible property.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if mnemonics are supposed to be visible in this window.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_modal" c:identifier="gtk_window_get_modal"> <doc xml:space="preserve">Returns whether the window is modal. See gtk_window_set_modal().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the window is set to be modal and establishes a grab when shown</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_opacity" c:identifier="gtk_window_get_opacity" version="2.12" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Fetches the requested opacity for this window. See gtk_window_set_opacity().</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_get_opacity instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the requested opacity for this window.</doc> <type name="gdouble" c:type="gdouble"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_position" c:identifier="gtk_window_get_position"> <doc xml:space="preserve">This function returns the position you need to pass to gtk_window_move() to keep @window in its current position. This means that the meaning of the returned value varies with window gravity. See gtk_window_move() for more details. The reliability of this function depends on the windowing system currently in use. Some windowing systems, such as Wayland, do not support a global coordinate system, and thus the position of the window will always be (0, 0). Others, like X11, do not have a reliable way to obtain the geometry of the decorations of a window if they are provided by the window manager. Additionally, on X11, window manager have been known to mismanage window gravity, which result in windows moving even if you use the coordinates of the current position as returned by this function. If you havenât changed the window gravity, its gravity will be #GDK_GRAVITY_NORTH_WEST. This means that gtk_window_get_position() gets the position of the top-left corner of the window manager frame for the window. gtk_window_move() sets the position of this same top-left corner. If a window has gravity #GDK_GRAVITY_STATIC the window manager frame is not relevant, and thus gtk_window_get_position() will always produce accurate results. However you canât use static gravity to do things like place a window in a corner of the screen, because static gravity ignores the window manager decorations. Ideally, this function should return appropriate values if the window has client side decorations, assuming that the windowing system supports global coordinates. In practice, saving the window position should not be left to applications, as they lack enough knowledge of the windowing system and the window manager state to effectively do so. The appropriate way to implement saving the window position is to use a platform-specific protocol, wherever that is available.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="root_x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for X coordinate of gravity-determined reference point, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="root_y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for Y coordinate of gravity-determined reference point, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_resizable" c:identifier="gtk_window_get_resizable"> <doc xml:space="preserve">Gets the value set by gtk_window_set_resizable().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the user can resize the window</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_resize_grip_area" c:identifier="gtk_window_get_resize_grip_area" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">If a window has a resize grip, this will retrieve the grip position, width and height into the specified #GdkRectangle.</doc> <doc-deprecated xml:space="preserve">Resize grips have been removed.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the resize gripâs area was retrieved</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="rect" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GdkRectangle which we should store the resize grip area</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </method> <method name="get_role" c:identifier="gtk_window_get_role"> <doc xml:space="preserve">Returns the role of the window. See gtk_window_set_role() for further explanation.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the role of the window if set, or %NULL. The returned is owned by the widget and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_screen" c:identifier="gtk_window_get_screen" version="2.2"> <doc xml:space="preserve">Returns the #GdkScreen associated with @window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow.</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_size" c:identifier="gtk_window_get_size"> <doc xml:space="preserve">Obtains the current size of @window. If @window is not visible on screen, this function return the size GTK+ will suggest to the [window manager][gtk-X11-arch] for the initial window size (but this is not reliably the same as the size the window manager will actually select). See: gtk_window_set_default_size(). Depending on the windowing system and the window manager constraints, the size returned by this function may not match the size set using gtk_window_resize(); additionally, since gtk_window_resize() may be implemented as an asynchronous operation, GTK+ cannot guarantee in any way that this code: |[<!-- language="C" --> // width and height are set elsewhere gtk_window_resize (window, width, height); int new_width, new_height; gtk_window_get_size (window, &new_width, &new_height); ]| will result in `new_width` and `new_height` matching `width` and `height`, respectively. This function will return the logical size of the #GtkWindow, excluding the widgets used in client side decorations; there is, however, no guarantee that the result will be completely accurate because client side decoration may include widgets that depend on the user preferences and that may not be visibile at the time you call this function. The dimensions returned by this function are suitable for being stored across sessions; use gtk_window_set_default_size() to restore them when before showing the window. To avoid potential race conditions, you should only call this function in response to a size change notification, for instance inside a handler for the #GtkWidget::size-allocate signal, or inside a handler for the #GtkWidget::configure-event signal: |[<!-- language="C" --> static void on_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { int new_width, new_height; gtk_window_get_size (GTK_WINDOW (widget), &new_width, &new_height); ... } ]| Note that, if you connect to the #GtkWidget::size-allocate signal, you should not use the dimensions of the #GtkAllocation passed to the signal handler, as the allocation may contain client side decorations added by GTK+, depending on the windowing system in use. If you are getting a window size in order to position the window on the screen, you should, instead, simply set the windowâs semantic type with gtk_window_set_type_hint(), which allows the window manager to e.g. center dialogs. Also, if you set the transient parent of dialogs with gtk_window_set_transient_for() window managers will often center the dialog over its parent window. It's much preferred to let the window manager handle these cases rather than doing it yourself, because all apps will behave consistently and according to user or system preferences, if the window manager handles it. Also, the window manager can take into account the size of the window decorations and border that it may add, and of which GTK+ has no knowledge. Additionally, positioning windows in global screen coordinates may not be allowed by the windowing system. For more information, see: gtk_window_set_position().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">return location for width, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1"> <doc xml:space="preserve">return location for height, or %NULL</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </method> <method name="get_skip_pager_hint" c:identifier="gtk_window_get_skip_pager_hint" version="2.2"> <doc xml:space="preserve">Gets the value set by gtk_window_set_skip_pager_hint().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if window shouldnât be in pager</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_skip_taskbar_hint" c:identifier="gtk_window_get_skip_taskbar_hint" version="2.2"> <doc xml:space="preserve">Gets the value set by gtk_window_set_skip_taskbar_hint()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if window shouldnât be in taskbar</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_title" c:identifier="gtk_window_get_title"> <doc xml:space="preserve">Retrieves the title of the window. See gtk_window_set_title().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the title of the window, or %NULL if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_titlebar" c:identifier="gtk_window_get_titlebar" version="3.16"> <doc xml:space="preserve">Returns the custom titlebar that has been set with gtk_window_set_titlebar().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the custom titlebar, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_transient_for" c:identifier="gtk_window_get_transient_for"> <doc xml:space="preserve">Fetches the transient parent for this window. See gtk_window_set_transient_for().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the transient parent for this window, or %NULL if no transient parent has been set.</doc> <type name="Window" c:type="GtkWindow*"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_type_hint" c:identifier="gtk_window_get_type_hint"> <doc xml:space="preserve">Gets the type hint for this window. See gtk_window_set_type_hint().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the type hint for @window.</doc> <type name="Gdk.WindowTypeHint" c:type="GdkWindowTypeHint"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_urgency_hint" c:identifier="gtk_window_get_urgency_hint" version="2.8"> <doc xml:space="preserve">Gets the value set by gtk_window_set_urgency_hint()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if window is urgent</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="get_window_type" c:identifier="gtk_window_get_window_type" version="2.20"> <doc xml:space="preserve">Gets the type of the window. See #GtkWindowType.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the type of the window</doc> <type name="WindowType" c:type="GtkWindowType"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="has_group" c:identifier="gtk_window_has_group"> <doc xml:space="preserve">Returns whether @window has an explicit window group.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @window has an explicit window group. Since 2.22</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="has_toplevel_focus" c:identifier="gtk_window_has_toplevel_focus" version="2.4"> <doc xml:space="preserve">Returns whether the input focus is within this GtkWindow. For real toplevel windows, this is identical to gtk_window_is_active(), but for embedded windows, like #GtkPlug, the results will differ.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the input focus is within this GtkWindow</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="iconify" c:identifier="gtk_window_iconify"> <doc xml:space="preserve">Asks to iconify (i.e. minimize) the specified @window. Note that you shouldnât assume the window is definitely iconified afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could deiconify it again, or there may not be a window manager in which case iconification isnât possible, etc. But normally the window will end up iconified. Just donât write code that crashes if not. Itâs permitted to call this function before showing a window, in which case the window will be iconified before it ever appears onscreen. You can track iconification via the âwindow-state-eventâ signal on #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="is_active" c:identifier="gtk_window_is_active" version="2.4"> <doc xml:space="preserve">Returns whether the window is part of the current active toplevel. (That is, the toplevel window receiving keystrokes.) The return value is %TRUE if the window is active toplevel itself, but also if it is, say, a #GtkPlug embedded in the active toplevel. You might use this function if you wanted to draw a widget differently in an active window from a widget in an inactive window. See gtk_window_has_toplevel_focus()</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the window part of the current active window.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="is_maximized" c:identifier="gtk_window_is_maximized" version="3.12"> <doc xml:space="preserve">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 gtk_window_maximize() or gtk_window_unmaximize().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether the window has a maximized state.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="maximize" c:identifier="gtk_window_maximize"> <doc xml:space="preserve">Asks to maximize @window, so that it becomes full-screen. Note that you shouldnât assume the window is definitely maximized afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could unmaximize it again, and not all window managers support maximization. But normally the window will end up maximized. Just donât write code that crashes if not. 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 maximization via the âwindow-state-eventâ signal on #GtkWidget, or by listening to notifications on the #GtkWindow:is-maximized property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="mnemonic_activate" c:identifier="gtk_window_mnemonic_activate"> <doc xml:space="preserve">Activates the targets associated with the mnemonic.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the activation is done.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">the mnemonic</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifier" transfer-ownership="none"> <doc xml:space="preserve">the modifiers</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </method> <method name="move" c:identifier="gtk_window_move"> <doc xml:space="preserve">Asks the [window manager][gtk-X11-arch] to move @window to the given position. Window managers are free to ignore this; most window managers ignore requests for initial window positions (instead using a user-defined placement algorithm) and honor requests after the window has already been shown. Note: the position is the position of the gravity-determined reference point for the window. The gravity determines two things: first, the location of the reference point in root window coordinates; and second, which point on the window is positioned at the reference point. By default the gravity is #GDK_GRAVITY_NORTH_WEST, so the reference point is simply the @x, @y supplied to gtk_window_move(). The top-left corner of the window decorations (aka window frame or border) will be placed at @x, @y. Therefore, to position a window at the top left of the screen, you want to use the default gravity (which is #GDK_GRAVITY_NORTH_WEST) and move the window to 0,0. To position a window at the bottom right corner of the screen, you would set #GDK_GRAVITY_SOUTH_EAST, which means that the reference point is at @x + the window width and @y + the window height, and the bottom-right corner of the window border will be placed at that reference point. So, to place a window in the bottom right corner you would first set gravity to south east, then write: `gtk_window_move (window, gdk_screen_width () - window_width, gdk_screen_height () - window_height)` (note that this example does not take multi-head scenarios into account). The [Extended Window Manager Hints Specification](http://www.freedesktop.org/Standards/wm-spec) has a nice table of gravities in the âimplementation notesâ section. The gtk_window_get_position() documentation may also be relevant.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X coordinate to move window to</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate to move window to</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="parse_geometry" c:identifier="gtk_window_parse_geometry" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Parses a standard X Window System geometry string - see the manual page for X (type âman Xâ) for details on this. gtk_window_parse_geometry() does work on all GTK+ ports including Win32 but is primarily intended for an X environment. If either a size or a position can be extracted from the geometry string, gtk_window_parse_geometry() returns %TRUE and calls gtk_window_set_default_size() and/or gtk_window_move() to resize/move the window. If gtk_window_parse_geometry() returns %TRUE, it will also set the #GDK_HINT_USER_POS and/or #GDK_HINT_USER_SIZE hints indicating to the window manager that the size/position of the window was user-specified. This causes most window managers to honor the geometry. Note that for gtk_window_parse_geometry() to work as expected, it has to be called when the window has its âfinalâ size, i.e. after calling gtk_widget_show_all() on the contents and gtk_window_set_geometry_hints() on the window. |[<!-- language="C" --> #include <gtk/gtk.h> static void fill_with_content (GtkWidget *vbox) { // fill with content... } int main (int argc, char *argv[]) { GtkWidget *window, *vbox; GdkGeometry size_hints = { 100, 50, 0, 0, 100, 50, 10, 10, 0.0, 0.0, GDK_GRAVITY_NORTH_WEST }; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); fill_with_content (vbox); gtk_widget_show_all (vbox); gtk_window_set_geometry_hints (GTK_WINDOW (window), NULL, &size_hints, GDK_HINT_MIN_SIZE | GDK_HINT_BASE_SIZE | GDK_HINT_RESIZE_INC); if (argc > 1) { gboolean res; res = gtk_window_parse_geometry (GTK_WINDOW (window), argv[1]); if (! res) fprintf (stderr, "Failed to parse â%sâ\n", argv[1]); } gtk_widget_show_all (window); gtk_main (); return 0; } ]|</doc> <doc-deprecated xml:space="preserve">Geometry handling in GTK is deprecated.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if string was parsed successfully</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="geometry" transfer-ownership="none"> <doc xml:space="preserve">geometry string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="present" c:identifier="gtk_window_present"> <doc xml:space="preserve">Presents a window to the user. This may mean raising the window in the stacking order, deiconifying 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 calls gtk_widget_show() as well. This function should be used when the user tries to open a window thatâs already open. Say for example the preferences dialog is currently open, and the user chooses Preferences from the menu a second time; use gtk_window_present() to move the already-open dialog where the user can see it. If you are calling this function in response to a user interaction, it is preferable to use gtk_window_present_with_time().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="present_with_time" c:identifier="gtk_window_present_with_time" version="2.8"> <doc xml:space="preserve">Presents a window to the user in response to a user interaction. If you need to present a window without a timestamp, use gtk_window_present(). See gtk_window_present() for details.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="timestamp" transfer-ownership="none"> <doc xml:space="preserve">the timestamp of the user interaction (typically a button or key press event) which triggered this call</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </method> <method name="propagate_key_event" c:identifier="gtk_window_propagate_key_event" version="2.4"> <doc xml:space="preserve">Propagate a key press or release event to the focus widget and up the focus container chain until a widget handles @event. This is normally called by the default ::key_press_event and ::key_release_event handlers for toplevel windows, however in some cases it may be useful to call this directly when overriding the standard key handling for a toplevel window.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a widget in the focus chain handled the event.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEventKey</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </method> <method name="remove_accel_group" c:identifier="gtk_window_remove_accel_group"> <doc xml:space="preserve">Reverses the effects of gtk_window_add_accel_group().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="accel_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkAccelGroup</doc> <type name="AccelGroup" c:type="GtkAccelGroup*"/> </parameter> </parameters> </method> <method name="remove_mnemonic" c:identifier="gtk_window_remove_mnemonic"> <doc xml:space="preserve">Removes a mnemonic from this window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">the mnemonic</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">the widget that gets activated by the mnemonic</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="reshow_with_initial_size" c:identifier="gtk_window_reshow_with_initial_size" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Hides @window, then reshows it, resetting the default size and position of the window. Used by GUI builders only.</doc> <doc-deprecated xml:space="preserve">GUI builders can call gtk_widget_hide(), gtk_widget_unrealize() and then gtk_widget_show() on @window themselves, if they still need this functionality.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="resize" c:identifier="gtk_window_resize"> <doc xml:space="preserve">Resizes the window as if the user had done so, obeying geometry constraints. The default geometry constraint is that windows may not be smaller than their size request; to override this constraint, call gtk_widget_set_size_request() to set the window's request to a smaller value. If gtk_window_resize() is called before showing a window for the first time, it overrides any default size set with gtk_window_set_default_size(). Windows may not be resized smaller than 1 by 1 pixels. When using client side decorations, GTK+ will do its best to adjust the given size so that the resulting window size matches the requested size without the title bar, borders and shadows added for the client side decorations, but there is no guarantee that the result will be totally accurate because these widgets added for client side decorations depend on the theme and may not be realized or visible at the time gtk_window_resize() is issued. If the GtkWindow has a titlebar widget (see gtk_window_set_titlebar()), then typically, gtk_window_resize() will compensate for the height of the titlebar widget only if the height is known when the resulting GtkWindow configuration is issued. For example, if new widgets are added after the GtkWindow configuration and cause the titlebar widget to grow in height, this will result in a window content smaller that specified by gtk_window_resize() and not a larger window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width in pixels to resize the window to</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height in pixels to resize the window to</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="resize_grip_is_visible" c:identifier="gtk_window_resize_grip_is_visible" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Determines whether a resize grip is visible for the specified window.</doc> <doc-deprecated xml:space="preserve">Resize grips have been removed.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a resize grip exists and is visible</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="resize_to_geometry" c:identifier="gtk_window_resize_to_geometry" version="3.0" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Like gtk_window_resize(), but @width and @height are interpreted in terms of the base size and increment set with gtk_window_set_geometry_hints.</doc> <doc-deprecated xml:space="preserve">This function does nothing. Use gtk_window_resize() and compute the geometry yourself.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width in resize increments to resize the window to</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height in resize increments to resize the window to</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_accept_focus" c:identifier="gtk_window_set_accept_focus" version="2.4"> <doc xml:space="preserve">Windows may set a hint asking the desktop environment not to receive the input focus. This function sets this hint.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to let this window receive input focus</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_application" c:identifier="gtk_window_set_application" version="3.0"> <doc xml:space="preserve">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 gtk_application_remove_window() and/or gtk_application_add_window() on the old/new applications as relevant.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="application" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkApplication, or %NULL to unset</doc> <type name="Application" c:type="GtkApplication*"/> </parameter> </parameters> </method> <method name="set_attached_to" c:identifier="gtk_window_set_attached_to" version="3.4"> <doc xml:space="preserve">Marks @window as attached to @attach_widget. This creates a logical binding between the window and the widget it belongs to, which is used by GTK+ to propagate information such as styling or accessibility to @window as if it was a children of @attach_widget. Examples of places where specifying this relation is useful are for instance a #GtkMenu created by a #GtkComboBox, a completion popup window created by #GtkEntry or a typeahead search entry created by #GtkTreeView. Note that this function should not be confused with gtk_window_set_transient_for(), which specifies a window manager relation between two toplevels instead. Passing %NULL for @attach_widget detaches the window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="attach_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_decorated" c:identifier="gtk_window_set_decorated"> <doc xml:space="preserve">By default, windows are decorated with a title bar, resize controls, etc. Some [window managers][gtk-X11-arch] 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 gtk_widget_show(). On Windows, this function always works, since thereâs no window manager policy involved.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to decorate the window</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_default" c:identifier="gtk_window_set_default"> <doc xml:space="preserve">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 #GtkWindow. When setting (rather than unsetting) the default widget itâs generally easier to call gtk_widget_grab_default() on the widget. Before making a widget the default widget, you must call gtk_widget_set_can_default() on the widget youâd like to make the default.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="default_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">widget to be the default, or %NULL to unset the default widget for the toplevel</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_default_geometry" c:identifier="gtk_window_set_default_geometry" version="3.0" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Like gtk_window_set_default_size(), but @width and @height are interpreted in terms of the base size and increment set with gtk_window_set_geometry_hints.</doc> <doc-deprecated xml:space="preserve">This function does nothing. If you want to set a default size, use gtk_window_set_default_size() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width in resize increments, or -1 to unset the default width</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height in resize increments, or -1 to unset the default height</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_default_size" c:identifier="gtk_window_set_default_size"> <doc xml:space="preserve">Sets the default size of a window. If the windowâs ânaturalâ size (its size request) is larger than the default, the default will be ignored. More generally, if the default size does not obey the geometry hints for the window (gtk_window_set_geometry_hints() can be used to set these explicitly), the default size will be clamped to the nearest permitted size. Unlike 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). For more control over a windowâs initial size and how resizing works, investigate gtk_window_set_geometry_hints(). For some uses, gtk_window_resize() is a more appropriate function. gtk_window_resize() changes the current size of the window, rather than the size to be used on initial display. gtk_window_resize() always affects the window itself, not the geometry widget. The default size of a window only affects the first time a window is shown; if a window is hidden and re-shown, it will remember the size it had prior to hiding, rather than using the default size. Windows canât actually be 0x0 in size, they must be at least 1x1, but passing 0 for @width and @height is OK, resulting in a 1x1 default size. If you use this function to reestablish a previously saved window size, note that the appropriate size to save is the one returned by gtk_window_get_size(). Using the window allocation directly will not work in all circumstances and can lead to growing or shrinking windows.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width in pixels, or -1 to unset the default width</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height in pixels, or -1 to unset the default height</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </method> <method name="set_deletable" c:identifier="gtk_window_set_deletable" version="2.10"> <doc xml:space="preserve">By default, windows have a close button in the window frame. Some [window managers][gtk-X11-arch] 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 gtk_widget_show(). On Windows, this function always works, since thereâs no window manager policy involved.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to decorate the window as deletable</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_destroy_with_parent" c:identifier="gtk_window_set_destroy_with_parent"> <doc xml:space="preserve">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're associated with, for example.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">whether to destroy @window with its transient parent</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_focus" c:identifier="gtk_window_set_focus"> <doc xml:space="preserve">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 gtk_widget_grab_focus() instead of this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="focus" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">widget to be the new focus widget, or %NULL to unset any focus widget for the toplevel window.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_focus_on_map" c:identifier="gtk_window_set_focus_on_map" version="2.6"> <doc xml:space="preserve">Windows may set a hint asking the desktop environment not to receive the input focus when the window is mapped. This function sets this hint.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to let this window receive input focus on map</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_focus_visible" c:identifier="gtk_window_set_focus_visible" version="3.2"> <doc xml:space="preserve">Sets the #GtkWindow:focus-visible property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_geometry_hints" c:identifier="gtk_window_set_geometry_hints"> <doc xml:space="preserve">This function sets up hints about how a window can be resized by the user. You can set a minimum and maximum size; allowed resize increments (e.g. for xterm, you can only resize by the size of a character); aspect ratios; and more. See the #GdkGeometry struct.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="geometry_widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">widget the geometry hints used to be applied to or %NULL. Since 3.20 this argument is ignored and GTK behaves as if %NULL was set.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="geometry" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">struct containing geometry information or %NULL</doc> <type name="Gdk.Geometry" c:type="GdkGeometry*"/> </parameter> <parameter name="geom_mask" transfer-ownership="none"> <doc xml:space="preserve">mask indicating which struct fields should be paid attention to</doc> <type name="Gdk.WindowHints" c:type="GdkWindowHints"/> </parameter> </parameters> </method> <method name="set_gravity" c:identifier="gtk_window_set_gravity"> <doc xml:space="preserve">Window gravity defines the meaning of coordinates passed to gtk_window_move(). See gtk_window_move() and #GdkGravity for more details. The default window gravity is #GDK_GRAVITY_NORTH_WEST which will typically âdo what you mean.â</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="gravity" transfer-ownership="none"> <doc xml:space="preserve">window gravity</doc> <type name="Gdk.Gravity" c:type="GdkGravity"/> </parameter> </parameters> </method> <method name="set_has_resize_grip" c:identifier="gtk_window_set_has_resize_grip" version="3.0" deprecated="1" deprecated-version="3.14"> <doc xml:space="preserve">Sets whether @window has a corner resize grip. Note that the resize grip is only shown if the window is actually resizable and not maximized. Use gtk_window_resize_grip_is_visible() to find out if the resize grip is currently shown.</doc> <doc-deprecated xml:space="preserve">Resize grips have been removed.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="value" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to allow a resize grip</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_has_user_ref_count" c:identifier="gtk_window_set_has_user_ref_count" version="3.0"> <doc xml:space="preserve">Tells GTK+ whether to drop its extra reference to the window when gtk_widget_destroy() is called. This function is only exported for the benefit of language bindings which may need to keep the window alive until their wrapper object is garbage collected. There is no justification for ever calling this function in an application.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_hide_titlebar_when_maximized" c:identifier="gtk_window_set_hide_titlebar_when_maximized" version="3.4"> <doc xml:space="preserve">If @setting is %TRUE, then @window will request that itâs titlebar should be hidden when maximized. This is useful for windows that donât convey any information other than the application name in the titlebar, to put the available screen space to better use. If the underlying window system does not support the request, the setting will not have any effect. Note that custom titlebars set with gtk_window_set_titlebar() are not affected by this. The application is in full control of their content and visibility anyway.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">whether to hide the titlebar when @window is maximized</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_icon" c:identifier="gtk_window_set_icon"> <doc xml:space="preserve">Sets up the icon representing a #GtkWindow. This icon is used when the window is minimized (also known as iconified). Some window managers or desktop environments may also place it in the window frame, or display it in other contexts. On others, the icon is not used at all, so your mileage may vary. The icon should be provided in whatever size it was naturally drawn; that is, donât scale the image before passing it to GTK+. Scaling is postponed until the last minute, when the desired final size is known, to allow best quality. If you have your icon hand-drawn in multiple sizes, use gtk_window_set_icon_list(). Then the best size will be used. This function is equivalent to calling gtk_window_set_icon_list() with a 1-element list. See also gtk_window_set_default_icon_list() to set the icon for all windows in your application in one go.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="icon" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">icon image, or %NULL</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> </parameters> </method> <method name="set_icon_from_file" c:identifier="gtk_window_set_icon_from_file" version="2.2" throws="1"> <doc xml:space="preserve">Sets the icon for @window. Warns on failure if @err is %NULL. This function is equivalent to calling gtk_window_set_icon() with a pixbuf created by loading the image from @filename.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if setting the icon succeeded.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">location of icon file</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_icon_list" c:identifier="gtk_window_set_icon_list"> <doc xml:space="preserve">Sets up the icon representing a #GtkWindow. The icon is used when the window is minimized (also known as iconified). Some window managers or desktop environments may also place it in the window frame, or display it in other contexts. On others, the icon is not used at all, so your mileage may vary. gtk_window_set_icon_list() allows you to pass in the same icon in several hand-drawn sizes. The list should contain the natural sizes your icon is available in; that is, donât scale the image before passing it to GTK+. Scaling is postponed until the last minute, when the desired final size is known, to allow best quality. By passing several sizes, you may improve the final image quality of the icon, by reducing or eliminating automatic image scaling. Recommended sizes to provide: 16x16, 32x32, 48x48 at minimum, and larger images (64x64, 128x128) if you have them. See also gtk_window_set_default_icon_list() to set the icon for all windows in your application in one go. Note that transient windows (those who have been set transient for another window using gtk_window_set_transient_for()) will inherit their icon from their transient parent. So thereâs no need to explicitly set the icon on transient windows.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">list of #GdkPixbuf</doc> <type name="GLib.List" c:type="GList*"> <type name="GdkPixbuf.Pixbuf"/> </type> </parameter> </parameters> </method> <method name="set_icon_name" c:identifier="gtk_window_set_icon_name" version="2.6"> <doc xml:space="preserve">Sets the icon for the window from a named themed icon. See the docs for #GtkIconTheme 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the name of the themed icon</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_keep_above" c:identifier="gtk_window_set_keep_above" version="2.4"> <doc xml:space="preserve">Asks to keep @window above, so that it stays on top. Note that you shouldnât assume the window is definitely above afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could not keep it above, and not all window managers support keeping windows above. But normally the window will end kept above. Just donât write code that crashes if not. Itâs permitted to call this function before showing a window, in which case the window will be kept above when it appears onscreen initially. You can track the above state via the âwindow-state-eventâ signal on #GtkWidget. Note that, according to the [Extended Window Manager Hints Specification](http://www.freedesktop.org/Standards/wm-spec), the above state is mainly meant for user preferences and should not be used by applications e.g. for drawing attention to their dialogs.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">whether to keep @window above other windows</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_keep_below" c:identifier="gtk_window_set_keep_below" version="2.4"> <doc xml:space="preserve">Asks to keep @window below, so that it stays in bottom. Note that you shouldnât assume the window is definitely below afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could not keep it below, and not all window managers support putting windows below. But normally the window will be kept below. Just donât write code that crashes if not. Itâs permitted to call this function before showing a window, in which case the window will be kept below when it appears onscreen initially. You can track the below state via the âwindow-state-eventâ signal on #GtkWidget. Note that, according to the [Extended Window Manager Hints Specification](http://www.freedesktop.org/Standards/wm-spec), the above state is mainly meant for user preferences and should not be used by applications e.g. for drawing attention to their dialogs.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">whether to keep @window below other windows</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_mnemonic_modifier" c:identifier="gtk_window_set_mnemonic_modifier"> <doc xml:space="preserve">Sets the mnemonic modifier for this window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="modifier" transfer-ownership="none"> <doc xml:space="preserve">the modifier mask used to activate mnemonics on this window.</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </method> <method name="set_mnemonics_visible" c:identifier="gtk_window_set_mnemonics_visible" version="2.20"> <doc xml:space="preserve">Sets the #GtkWindow:mnemonics-visible property.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">the new value</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_modal" c:identifier="gtk_window_set_modal"> <doc xml:space="preserve">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 gtk_window_set_transient_for() to make the dialog transient for the parent; most [window managers][gtk-X11-arch] will then disallow lowering the dialog below the parent.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="modal" transfer-ownership="none"> <doc xml:space="preserve">whether the window is modal</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_opacity" c:identifier="gtk_window_set_opacity" version="2.12" deprecated="1" deprecated-version="3.8"> <doc xml:space="preserve">Request the windowing system to make @window partially transparent, with opacity 0 being fully transparent and 1 fully opaque. (Values of the opacity parameter are clamped to the [0,1] range.) On X11 this has any effect only on X screens with a compositing manager running. See gtk_widget_is_composited(). On Windows it should work always. Note that setting a windowâs opacity after the window has been shown causes it to flicker once on Windows.</doc> <doc-deprecated xml:space="preserve">Use gtk_widget_set_opacity instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="opacity" transfer-ownership="none"> <doc xml:space="preserve">desired opacity, between 0 and 1</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </method> <method name="set_position" c:identifier="gtk_window_set_position"> <doc xml:space="preserve">Sets a position constraint for this window. If the old or new constraint is %GTK_WIN_POS_CENTER_ALWAYS, this will also cause the window to be repositioned to satisfy the new constraint.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow.</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="position" transfer-ownership="none"> <doc xml:space="preserve">a position constraint.</doc> <type name="WindowPosition" c:type="GtkWindowPosition"/> </parameter> </parameters> </method> <method name="set_resizable" c:identifier="gtk_window_set_resizable"> <doc xml:space="preserve">Sets whether the user can resize a window. Windows are user resizable by default.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="resizable" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the user can resize this window</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_role" c:identifier="gtk_window_set_role"> <doc xml:space="preserve">This function is only useful on X11, not with other GTK+ targets. In combination with the window title, the window role allows a [window manager][gtk-X11-arch] to identify "the same" window when an application is restarted. So for example you might set the âtoolboxâ role on your appâs toolbox window, so that when the user restarts their session, the window manager can put the toolbox back in the same place. If a window already has a unique title, you donât need to set the role, since the WM can use the title to identify the window when restoring the session.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="role" transfer-ownership="none"> <doc xml:space="preserve">unique identifier for the window to be used when restoring a session</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_screen" c:identifier="gtk_window_set_screen" version="2.2"> <doc xml:space="preserve">Sets the #GdkScreen where the @window is displayed; if the window is already mapped, it will be unmapped, and then remapped on the new screen.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow.</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="screen" transfer-ownership="none"> <doc xml:space="preserve">a #GdkScreen.</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </method> <method name="set_skip_pager_hint" c:identifier="gtk_window_set_skip_pager_hint" version="2.2"> <doc xml:space="preserve">Windows may set a hint asking the desktop environment not to display the window in the pager. This function sets this hint. (A "pager" is any desktop navigation tool such as a workspace switcher that displays a thumbnail representation of the windows on the screen.)</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to keep this window from appearing in the pager</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_skip_taskbar_hint" c:identifier="gtk_window_set_skip_taskbar_hint" version="2.2"> <doc xml:space="preserve">Windows may set a hint asking the desktop environment not to display the window in the task bar. This function sets this hint.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to keep this window from appearing in the task bar</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_startup_id" c:identifier="gtk_window_set_startup_id" version="2.12"> <doc xml:space="preserve">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 GdkWindow. 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 gtk_window_present() or any equivalent function generating a window map event. This function is only useful on X11, not with other GTK+ targets.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="startup_id" transfer-ownership="none"> <doc xml:space="preserve">a string with startup-notification identifier</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_title" c:identifier="gtk_window_set_title"> <doc xml:space="preserve">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][gtk-X11-arch], 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="title" transfer-ownership="none"> <doc xml:space="preserve">title of the window</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="set_titlebar" c:identifier="gtk_window_set_titlebar" version="3.10"> <doc xml:space="preserve">Sets a custom titlebar for @window. A typical widget used here is #GtkHeaderBar, 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 gtk_widget_show().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="titlebar" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget to use as titlebar</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </method> <method name="set_transient_for" c:identifier="gtk_window_set_transient_for"> <doc xml:space="preserve">Dialog windows should be set transient for the main application window they were spawned from. This allows [window managers][gtk-X11-arch] to e.g. keep the dialog on top of the main window, or center the dialog over the main window. 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 Wayland, this function can also be used to attach a new #GTK_WINDOW_POPUP to a #GTK_WINDOW_TOPLEVEL parent already mapped on screen so that the #GTK_WINDOW_POPUP will be created as a subsurface-based window #GDK_WINDOW_SUBSURFACE which can be positioned at will relatively to the #GTK_WINDOW_TOPLEVEL surface. On Windows, this function puts the child window on top of the parent, much as the window manager would have done on X.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">parent window, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <method name="set_type_hint" c:identifier="gtk_window_set_type_hint"> <doc xml:space="preserve">By setting the type hint for the window, you allow the window manager to decorate and handle the window in a way which is suitable to the function of the window in your application. This function should be called before the window becomes visible. gtk_dialog_new_with_buttons() and other convenience functions in GTK+ will sometimes call gtk_window_set_type_hint() on your behalf.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="hint" transfer-ownership="none"> <doc xml:space="preserve">the window type</doc> <type name="Gdk.WindowTypeHint" c:type="GdkWindowTypeHint"/> </parameter> </parameters> </method> <method name="set_urgency_hint" c:identifier="gtk_window_set_urgency_hint" version="2.8"> <doc xml:space="preserve">Windows may set a hint asking the desktop environment to draw the users attention to the window. This function sets this hint.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="setting" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to mark this window as urgent</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </method> <method name="set_wmclass" c:identifier="gtk_window_set_wmclass" deprecated="1" deprecated-version="3.22"> <doc xml:space="preserve">Donât use this function. It sets the X Window System âclassâ and ânameâ hints for a window. According to the ICCCM, you should always set these to the same value for all windows in an application, and GTK+ sets them to that value by default, so calling this function is sort of pointless. However, you may want to call gtk_window_set_role() on each window in your application, for the benefit of the session manager. Setting the role allows the window manager to restore window positions when loading a saved session.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> <parameter name="wmclass_name" transfer-ownership="none"> <doc xml:space="preserve">window name hint</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="wmclass_class" transfer-ownership="none"> <doc xml:space="preserve">window class hint</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </method> <method name="stick" c:identifier="gtk_window_stick"> <doc xml:space="preserve">Asks to stick @window, which means that it will appear on all user desktops. Note that you shouldnât assume the window is definitely stuck afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch] could unstick it again, and some window managers do not support sticking windows. But normally the window will end up stuck. Just don't write code that crashes if not. Itâs permitted to call this function before showing a window. You can track stickiness via the âwindow-state-eventâ signal on #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="unfullscreen" c:identifier="gtk_window_unfullscreen" version="2.2"> <doc xml:space="preserve">Asks to toggle off the fullscreen state for @window. Note that you shouldnât assume the window is definitely not full screen afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could fullscreen it again, and not all window managers honor requests to unfullscreen windows. But normally the window will end up restored to its normal state. Just donât write code that crashes if not. You can track the fullscreen state via the âwindow-state-eventâ signal on #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="unmaximize" c:identifier="gtk_window_unmaximize"> <doc xml:space="preserve">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][gtk-X11-arch]) could maximize it again, and not all window managers honor requests to unmaximize. But normally the window will end up unmaximized. Just donât write code that crashes if not. You can track maximization via the âwindow-state-eventâ signal on #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <method name="unstick" c:identifier="gtk_window_unstick"> <doc xml:space="preserve">Asks to unstick @window, which means that it will appear on only one of the userâs desktops. Note that you shouldnât assume the window is definitely unstuck afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could stick it again. But normally the window will end up stuck. Just donât write code that crashes if not. You can track stickiness via the âwindow-state-eventâ signal on #GtkWidget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </instance-parameter> </parameters> </method> <property name="accept-focus" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the window should receive the input focus.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="application" version="3.0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="Application"/> </property> <property name="attached-to" version="3.4" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The widget to which this window is attached. See gtk_window_set_attached_to(). Examples of places where specifying this relation is useful are for instance a #GtkMenu created by a #GtkComboBox, a completion popup window created by #GtkEntry or a typeahead search entry created by #GtkTreeView.</doc> <type name="Widget"/> </property> <property name="decorated" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the window should be decorated by the window manager.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="default-height" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="default-width" writable="1" transfer-ownership="none"> <type name="gint" c:type="gint"/> </property> <property name="deletable" version="2.10" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the window frame should have a close button.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="destroy-with-parent" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="focus-on-map" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the window should receive the input focus when mapped.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="focus-visible" version="2.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="gravity" version="2.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The window gravity of the window. See gtk_window_move() and #GdkGravity for more details about window gravity.</doc> <type name="Gdk.Gravity"/> </property> <property name="has-resize-grip" version="3.0" deprecated="1" deprecated-version="3.14" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the window has a corner resize grip. Note that the resize grip is only shown if the window is actually resizable and not maximized. Use #GtkWindow:resize-grip-visible to find out if the resize grip is currently shown.</doc> <doc-deprecated xml:space="preserve">Resize grips have been removed.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="has-toplevel-focus" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="hide-titlebar-when-maximized" version="3.4" writable="1" transfer-ownership="none"> <doc xml:space="preserve">Whether the titlebar should be hidden during maximization.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="icon" writable="1" transfer-ownership="none"> <type name="GdkPixbuf.Pixbuf"/> </property> <property name="icon-name" version="2.6" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The :icon-name property specifies the name of the themed icon to use as the window icon. See #GtkIconTheme for more details.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="is-active" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="is-maximized" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="mnemonics-visible" version="2.20" writable="1" transfer-ownership="none"> <doc xml:space="preserve">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.</doc> <type name="gboolean" c:type="gboolean"/> </property> <property name="modal" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="resizable" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="resize-grip-visible" version="3.0" deprecated="1" deprecated-version="3.14" transfer-ownership="none"> <doc xml:space="preserve">Whether a corner resize grip is currently shown.</doc> <doc-deprecated xml:space="preserve">Resize grips have been removed.</doc-deprecated> <type name="gboolean" c:type="gboolean"/> </property> <property name="role" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="screen" writable="1" transfer-ownership="none"> <type name="Gdk.Screen"/> </property> <property name="skip-pager-hint" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="skip-taskbar-hint" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="startup-id" version="2.12" readable="0" writable="1" transfer-ownership="none"> <doc xml:space="preserve">The :startup-id is a write-only property for setting window's startup notification identifier. See gtk_window_set_startup_id() for more details.</doc> <type name="utf8" c:type="gchar*"/> </property> <property name="title" writable="1" transfer-ownership="none"> <type name="utf8" c:type="gchar*"/> </property> <property name="transient-for" version="2.10" writable="1" construct="1" transfer-ownership="none"> <doc xml:space="preserve">The transient parent of the window. See gtk_window_set_transient_for() for more details about transient windows.</doc> <type name="Window"/> </property> <property name="type" writable="1" construct-only="1" transfer-ownership="none"> <type name="WindowType"/> </property> <property name="type-hint" writable="1" transfer-ownership="none"> <type name="Gdk.WindowTypeHint"/> </property> <property name="urgency-hint" writable="1" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </property> <property name="window-position" writable="1" transfer-ownership="none"> <type name="WindowPosition"/> </property> <field name="bin"> <type name="Bin" c:type="GtkBin"/> </field> <field name="priv"> <type name="WindowPrivate" c:type="GtkWindowPrivate*"/> </field> <glib:signal name="activate-default" when="last" action="1"> <doc xml:space="preserve">The ::activate-default signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user activates the default widget of @window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="activate-focus" when="last" action="1"> <doc xml:space="preserve">The ::activate-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user activates the currently focused widget of @window.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="enable-debugging" when="last" action="1"> <doc xml:space="preserve">The ::enable-debugging signal is a [keybinding signal][GtkBindingSignal] which gets 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. The default bindings for this signal are Ctrl-Shift-I and Ctrl-Shift-D.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the key binding was handled</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="toggle" transfer-ownership="none"> <doc xml:space="preserve">toggle the debugger</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </glib:signal> <glib:signal name="keys-changed" when="first"> <doc xml:space="preserve">The ::keys-changed signal gets emitted when the set of accelerators or mnemonics that are associated with @window changes.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </glib:signal> <glib:signal name="set-focus" when="last"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <type name="Widget"/> </parameter> </parameters> </glib:signal> </class> <class name="WindowAccessible" c:symbol-prefix="window_accessible" c:type="GtkWindowAccessible" parent="ContainerAccessible" glib:type-name="GtkWindowAccessible" glib:get-type="gtk_window_accessible_get_type" glib:type-struct="WindowAccessibleClass"> <implements name="Atk.Component"/> <implements name="Atk.Window"/> <field name="parent"> <type name="ContainerAccessible" c:type="GtkContainerAccessible"/> </field> <field name="priv"> <type name="WindowAccessiblePrivate" c:type="GtkWindowAccessiblePrivate*"/> </field> </class> <record name="WindowAccessibleClass" c:type="GtkWindowAccessibleClass" glib:is-gtype-struct-for="WindowAccessible"> <field name="parent_class"> <type name="ContainerAccessibleClass" c:type="GtkContainerAccessibleClass"/> </field> </record> <record name="WindowAccessiblePrivate" c:type="GtkWindowAccessiblePrivate" disguised="1"> </record> <record name="WindowClass" c:type="GtkWindowClass" glib:is-gtype-struct-for="Window"> <field name="parent_class"> <doc xml:space="preserve">The parent class.</doc> <type name="BinClass" c:type="GtkBinClass"/> </field> <field name="set_focus"> <callback name="set_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindow</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="focus" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">widget to be the new focus widget, or %NULL to unset any focus widget for the toplevel window.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </callback> </field> <field name="activate_focus"> <callback name="activate_focus"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </callback> </field> <field name="activate_default"> <callback name="activate_default"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </callback> </field> <field name="keys_changed"> <callback name="keys_changed"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </callback> </field> <field name="enable_debugging"> <callback name="enable_debugging"> <return-value transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="window" transfer-ownership="none"> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="toggle" transfer-ownership="none"> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </callback> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="WindowGeometryInfo" c:type="GtkWindowGeometryInfo" disguised="1"> </record> <class name="WindowGroup" c:symbol-prefix="window_group" c:type="GtkWindowGroup" parent="GObject.Object" glib:type-name="GtkWindowGroup" glib:get-type="gtk_window_group_get_type" glib:type-struct="WindowGroupClass"> <doc xml:space="preserve">A #GtkWindowGroup restricts the effect of grabs to windows in the same group, thereby making window groups almost behave like separate applications. A window can be a member in at most one window group at a time. Windows that have not been explicitly assigned to a group are implicitly treated like windows of the default window group. GtkWindowGroup objects are referenced by each window in the group, so once you have added all windows to a GtkWindowGroup, you can drop the initial reference to the window group with g_object_unref(). If the windows in the window group are subsequently destroyed, then they will be removed from the window group and drop their references on the window group; when all window have been removed, the window group will be freed.</doc> <constructor name="new" c:identifier="gtk_window_group_new"> <doc xml:space="preserve">Creates a new #GtkWindowGroup object. Grabs added with gtk_grab_add() only affect windows within the same #GtkWindowGroup.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkWindowGroup.</doc> <type name="WindowGroup" c:type="GtkWindowGroup*"/> </return-value> </constructor> <method name="add_window" c:identifier="gtk_window_group_add_window"> <doc xml:space="preserve">Adds a window to a #GtkWindowGroup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindowGroup</doc> <type name="WindowGroup" c:type="GtkWindowGroup*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWindow to add</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <method name="get_current_device_grab" c:identifier="gtk_window_group_get_current_device_grab" version="3.0"> <doc xml:space="preserve">Returns the current grab widget for @device, or %NULL if none.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The grab widget, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="window_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindowGroup</doc> <type name="WindowGroup" c:type="GtkWindowGroup*"/> </instance-parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> </parameters> </method> <method name="get_current_grab" c:identifier="gtk_window_group_get_current_grab" version="2.22"> <doc xml:space="preserve">Gets the current grab widget of the given group, see gtk_grab_add().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the current grab widget of the group</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <instance-parameter name="window_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindowGroup</doc> <type name="WindowGroup" c:type="GtkWindowGroup*"/> </instance-parameter> </parameters> </method> <method name="list_windows" c:identifier="gtk_window_group_list_windows" version="2.14"> <doc xml:space="preserve">Returns a list of the #GtkWindows that belong to @window_group.</doc> <return-value transfer-ownership="container"> <doc xml:space="preserve">A newly-allocated list of windows inside the group.</doc> <type name="GLib.List" c:type="GList*"> <type name="Window"/> </type> </return-value> <parameters> <instance-parameter name="window_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindowGroup</doc> <type name="WindowGroup" c:type="GtkWindowGroup*"/> </instance-parameter> </parameters> </method> <method name="remove_window" c:identifier="gtk_window_group_remove_window"> <doc xml:space="preserve">Removes a window from a #GtkWindowGroup.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <instance-parameter name="window_group" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWindowGroup</doc> <type name="WindowGroup" c:type="GtkWindowGroup*"/> </instance-parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">the #GtkWindow to remove</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> </parameters> </method> <field name="parent_instance"> <type name="GObject.Object" c:type="GObject"/> </field> <field name="priv"> <type name="WindowGroupPrivate" c:type="GtkWindowGroupPrivate*"/> </field> </class> <record name="WindowGroupClass" c:type="GtkWindowGroupClass" glib:is-gtype-struct-for="WindowGroup"> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> <field name="_gtk_reserved1" introspectable="0"> <callback name="_gtk_reserved1"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved2" introspectable="0"> <callback name="_gtk_reserved2"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved3" introspectable="0"> <callback name="_gtk_reserved3"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> <field name="_gtk_reserved4" introspectable="0"> <callback name="_gtk_reserved4"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </callback> </field> </record> <record name="WindowGroupPrivate" c:type="GtkWindowGroupPrivate" disguised="1"> </record> <enumeration name="WindowPosition" glib:type-name="GtkWindowPosition" glib:get-type="gtk_window_position_get_type" c:type="GtkWindowPosition"> <doc xml:space="preserve">Window placement can be influenced using this enumeration. Note that using #GTK_WIN_POS_CENTER_ALWAYS is almost always a bad idea. It wonât necessarily work well with all window managers or on all windowing systems.</doc> <member name="none" value="0" c:identifier="GTK_WIN_POS_NONE" glib:nick="none"> <doc xml:space="preserve">No influence is made on placement.</doc> </member> <member name="center" value="1" c:identifier="GTK_WIN_POS_CENTER" glib:nick="center"> <doc xml:space="preserve">Windows should be placed in the center of the screen.</doc> </member> <member name="mouse" value="2" c:identifier="GTK_WIN_POS_MOUSE" glib:nick="mouse"> <doc xml:space="preserve">Windows should be placed at the current mouse position.</doc> </member> <member name="center_always" value="3" c:identifier="GTK_WIN_POS_CENTER_ALWAYS" glib:nick="center-always"> <doc xml:space="preserve">Keep window centered as it changes size, etc.</doc> </member> <member name="center_on_parent" value="4" c:identifier="GTK_WIN_POS_CENTER_ON_PARENT" glib:nick="center-on-parent"> <doc xml:space="preserve">Center the window on its transient parent (see gtk_window_set_transient_for()).</doc> </member> </enumeration> <record name="WindowPrivate" c:type="GtkWindowPrivate" disguised="1"> </record> <enumeration name="WindowType" glib:type-name="GtkWindowType" glib:get-type="gtk_window_type_get_type" c:type="GtkWindowType"> <doc xml:space="preserve">A #GtkWindow can be one of these types. Most things youâd consider a âwindowâ should have type #GTK_WINDOW_TOPLEVEL; windows with this type are managed by the window manager and have a frame by default (call gtk_window_set_decorated() to toggle the frame). Windows with type #GTK_WINDOW_POPUP are ignored by the window manager; window manager keybindings wonât work on them, the window manager wonât decorate the window with a frame, many GTK+ features that rely on the window manager will not work (e.g. resize grips and maximization/minimization). #GTK_WINDOW_POPUP is used to implement widgets such as #GtkMenu or tooltips that you normally donât think of as windows per se. Nearly all windows should be #GTK_WINDOW_TOPLEVEL. In particular, do not use #GTK_WINDOW_POPUP just to turn off the window borders; use gtk_window_set_decorated() for that.</doc> <member name="toplevel" value="0" c:identifier="GTK_WINDOW_TOPLEVEL" glib:nick="toplevel"> <doc xml:space="preserve">A regular window, such as a dialog.</doc> </member> <member name="popup" value="1" c:identifier="GTK_WINDOW_POPUP" glib:nick="popup"> <doc xml:space="preserve">A special window such as a tooltip.</doc> </member> </enumeration> <enumeration name="WrapMode" glib:type-name="GtkWrapMode" glib:get-type="gtk_wrap_mode_get_type" c:type="GtkWrapMode"> <doc xml:space="preserve">Describes a type of line wrapping.</doc> <member name="none" value="0" c:identifier="GTK_WRAP_NONE" glib:nick="none"> <doc xml:space="preserve">do not wrap lines; just make the text area wider</doc> </member> <member name="char" value="1" c:identifier="GTK_WRAP_CHAR" glib:nick="char"> <doc xml:space="preserve">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())</doc> </member> <member name="word" value="2" c:identifier="GTK_WRAP_WORD" glib:nick="word"> <doc xml:space="preserve">wrap text, breaking lines in between words</doc> </member> <member name="word_char" value="3" c:identifier="GTK_WRAP_WORD_CHAR" glib:nick="word-char"> <doc xml:space="preserve">wrap text, breaking lines in between words, or if that is not enough, also between graphemes</doc> </member> </enumeration> <function name="accel_groups_activate" c:identifier="gtk_accel_groups_activate"> <doc xml:space="preserve">Finds the first accelerator in any #GtkAccelGroup attached to @object that matches @accel_key and @accel_mods, and activates that accelerator.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if an accelerator was activated and handled this keypress</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <doc xml:space="preserve">the #GObject, usually a #GtkWindow, on which to activate the accelerator</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="accel_key" transfer-ownership="none"> <doc xml:space="preserve">accelerator keyval from a key event</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accel_mods" transfer-ownership="none"> <doc xml:space="preserve">keyboard state mask from a key event</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="accel_groups_from_object" c:identifier="gtk_accel_groups_from_object"> <doc xml:space="preserve">Gets a list of all accel groups which are attached to @object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a list of all accel groups which are attached to @object</doc> <type name="GLib.SList" c:type="GSList*"> <type name="AccelGroup"/> </type> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <doc xml:space="preserve">a #GObject, usually a #GtkWindow</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> </parameters> </function> <function name="accelerator_get_default_mod_mask" c:identifier="gtk_accelerator_get_default_mod_mask"> <doc xml:space="preserve">Gets the modifier mask. The modifier mask determines which modifiers are considered significant for keyboard accelerators. See gtk_accelerator_set_default_mod_mask().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default accelerator modifier mask</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </return-value> </function> <function name="accelerator_get_label" c:identifier="gtk_accelerator_get_label" version="2.6"> <doc xml:space="preserve">Converts an accelerator keyval and modifier mask into a string which can be used to represent the accelerator to the user.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated string representing the accelerator.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="accelerator_key" transfer-ownership="none"> <doc xml:space="preserve">accelerator keyval</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accelerator_mods" transfer-ownership="none"> <doc xml:space="preserve">accelerator modifier mask</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="accelerator_get_label_with_keycode" c:identifier="gtk_accelerator_get_label_with_keycode" version="3.4"> <doc xml:space="preserve">Converts an accelerator keyval and modifier mask into a (possibly translated) string that can be displayed to a user, similarly to gtk_accelerator_get_label(), but handling keycodes. This is only useful for system-level components, applications should use gtk_accelerator_parse() instead.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated string representing the accelerator.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="display" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkDisplay or %NULL to use the default display</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> <parameter name="accelerator_key" transfer-ownership="none"> <doc xml:space="preserve">accelerator keyval</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="keycode" transfer-ownership="none"> <doc xml:space="preserve">accelerator keycode</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accelerator_mods" transfer-ownership="none"> <doc xml:space="preserve">accelerator modifier mask</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="accelerator_name" c:identifier="gtk_accelerator_name"> <doc xml:space="preserve">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 â<Control>qâ. If you need to display accelerators in the user interface, see gtk_accelerator_get_label().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated accelerator name</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="accelerator_key" transfer-ownership="none"> <doc xml:space="preserve">accelerator keyval</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accelerator_mods" transfer-ownership="none"> <doc xml:space="preserve">accelerator modifier mask</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="accelerator_name_with_keycode" c:identifier="gtk_accelerator_name_with_keycode" version="3.4"> <doc xml:space="preserve">Converts an accelerator keyval and modifier mask into a string parseable by gtk_accelerator_parse_with_keycode(), similarly to gtk_accelerator_name() but handling keycodes. This is only useful for system-level components, applications should use gtk_accelerator_parse() instead.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated accelerator name.</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="display" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkDisplay or %NULL to use the default display</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> <parameter name="accelerator_key" transfer-ownership="none"> <doc xml:space="preserve">accelerator keyval</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="keycode" transfer-ownership="none"> <doc xml:space="preserve">accelerator keycode</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="accelerator_mods" transfer-ownership="none"> <doc xml:space="preserve">accelerator modifier mask</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="accelerator_parse" c:identifier="gtk_accelerator_parse"> <doc xml:space="preserve">Parses a string representing an accelerator. The format looks like â<Control>aâ or â<Shift><Alt>F1â or â<Release>zâ (the last one is for key release). The parser is fairly liberal and allows lower or upper case, and also abbreviations such as â<Ctl>â and â<Ctrl>â. Key names are parsed using gdk_keyval_from_name(). For character keys the name is not the symbol, but the lowercase name, e.g. one would use â<Ctrl>minusâ instead of â<Ctrl>-â. If the parse fails, @accelerator_key and @accelerator_mods will be set to 0 (zero).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accelerator" transfer-ownership="none"> <doc xml:space="preserve">string representing an accelerator</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accelerator_key" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for accelerator keyval, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="accelerator_mods" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for accelerator modifier mask, %NULL</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType*"/> </parameter> </parameters> </function> <function name="accelerator_parse_with_keycode" c:identifier="gtk_accelerator_parse_with_keycode" version="3.4"> <doc xml:space="preserve">Parses a string representing an accelerator, similarly to gtk_accelerator_parse() but handles keycodes as well. This is only useful for system-level components, applications should use 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).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="accelerator" transfer-ownership="none"> <doc xml:space="preserve">string representing an accelerator</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="accelerator_key" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for accelerator keyval, or %NULL</doc> <type name="guint" c:type="guint*"/> </parameter> <parameter name="accelerator_codes" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve"> return location for accelerator keycodes, or %NULL</doc> <array c:type="guint**"> <type name="guint" c:type="guint*"/> </array> </parameter> <parameter name="accelerator_mods" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">return location for accelerator modifier mask, %NULL</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType*"/> </parameter> </parameters> </function> <function name="accelerator_set_default_mod_mask" c:identifier="gtk_accelerator_set_default_mod_mask"> <doc xml:space="preserve">Sets the modifiers that will be considered significant for keyboard accelerators. The default mod mask depends on the GDK backend in use, but will typically include #GDK_CONTROL_MASK | #GDK_SHIFT_MASK | #GDK_MOD1_MASK | #GDK_SUPER_MASK | #GDK_HYPER_MASK | #GDK_META_MASK. In other words, Control, Shift, Alt, Super, Hyper and Meta. Other modifiers will by default be ignored by #GtkAccelGroup. You must include at least the three modifiers Control, Shift and Alt in any value you pass to this function. The default mod mask should be changed on application startup, before using any accelerator groups.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="default_mod_mask" transfer-ownership="none"> <doc xml:space="preserve">accelerator modifier mask</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="accelerator_valid" c:identifier="gtk_accelerator_valid"> <doc xml:space="preserve">Determines whether a given keyval and modifier mask constitute a valid keyboard accelerator. For example, the #GDK_KEY_a keyval plus #GDK_CONTROL_MASK is valid - this is a âCtrl+aâ accelerator. But, you can't, for instance, use the #GDK_KEY_Control_L keyval as an accelerator.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the accelerator is valid</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">a GDK keyval</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">modifier mask</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="alternative_dialog_button_order" c:identifier="gtk_alternative_dialog_button_order" version="2.6" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Returns %TRUE if dialogs are expected to use an alternative button order on the screen @screen. See gtk_dialog_set_alternative_button_order() for more details about alternative button order. If you need to use this function, you should probably connect to the ::notify:gtk-alternative-button-order signal on the #GtkSettings object associated to @screen, in order to be notified if the button order setting changes.</doc> <doc-deprecated xml:space="preserve">Deprecated</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">Whether the alternative button order should be used</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GdkScreen, or %NULL to use the default screen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> </parameters> </function> <function name="binding_entry_add_signal_from_string" c:identifier="gtk_binding_entry_add_signal_from_string" moved-to="BindingEntry.add_signal_from_string" version="3.0"> <doc xml:space="preserve">Parses a signal description from @signal_desc and incorporates it into @binding_set. Signal descriptions may either bind a key combination to one or more signals: |[ bind "key" { "signalname" (param, ...) ... } ]| Or they may also unbind a key combination: |[ unbind "key" ]| Key combinations must be in a format that can be parsed by gtk_accelerator_parse().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%G_TOKEN_NONE if the signal was successfully parsed and added, the expected token otherwise</doc> <type name="GLib.TokenType" c:type="GTokenType"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="signal_desc" transfer-ownership="none"> <doc xml:space="preserve">a signal description</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="binding_entry_add_signall" c:identifier="gtk_binding_entry_add_signall" moved-to="BindingEntry.add_signall"> <doc xml:space="preserve">Override or install a new key binding for @keyval with @modifiers on @binding_set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet to add a signal to</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> <parameter name="signal_name" transfer-ownership="none"> <doc xml:space="preserve">signal name to be bound</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="binding_args" transfer-ownership="none"> <doc xml:space="preserve"> list of #GtkBindingArg signal arguments</doc> <type name="GLib.SList" c:type="GSList*"> <type name="BindingArg"/> </type> </parameter> </parameters> </function> <function name="binding_entry_remove" c:identifier="gtk_binding_entry_remove" moved-to="BindingEntry.remove"> <doc xml:space="preserve">Remove a binding previously installed via gtk_binding_entry_add_signal() on @binding_set.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet to remove an entry of</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value of binding to remove</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier of binding to remove</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="binding_entry_skip" c:identifier="gtk_binding_entry_skip" moved-to="BindingEntry.skip" version="2.12"> <doc xml:space="preserve">Install a binding on @binding_set which causes key lookups to be aborted, to prevent bindings from lower priority sets to be activated.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="binding_set" transfer-ownership="none"> <doc xml:space="preserve">a #GtkBindingSet to skip an entry of</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value of binding to skip</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier of binding to skip</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="binding_set_by_class" c:identifier="gtk_binding_set_by_class" moved-to="BindingSet.by_class" introspectable="0"> <doc xml:space="preserve">This function returns the binding set named after the type name of the passed in class structure. New binding sets are created on demand by this function.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the binding set corresponding to @object_class</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </return-value> <parameters> <parameter name="object_class" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a valid #GObject class</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </function> <function name="binding_set_find" c:identifier="gtk_binding_set_find" moved-to="BindingSet.find"> <doc xml:space="preserve">Find a binding set by its globally unique name. The @set_name can either be a name used for gtk_binding_set_new() or the type name of a class used in gtk_binding_set_by_class().</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">%NULL or the specified binding set</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </return-value> <parameters> <parameter name="set_name" transfer-ownership="none"> <doc xml:space="preserve">unique binding set name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="binding_set_new" c:identifier="gtk_binding_set_new" moved-to="BindingSet.new" introspectable="0"> <doc xml:space="preserve">GTK+ maintains a global list of binding sets. Each binding set has a unique name which needs to be specified upon creation.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">new binding set</doc> <type name="BindingSet" c:type="GtkBindingSet*"/> </return-value> <parameters> <parameter name="set_name" transfer-ownership="none"> <doc xml:space="preserve">unique name of this binding set</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="bindings_activate" c:identifier="gtk_bindings_activate"> <doc xml:space="preserve">Find a key binding matching @keyval and @modifiers and activate the binding on @object.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a binding was found and activated</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <doc xml:space="preserve">object to activate when binding found</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">key value of the binding</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">key modifier of the binding</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="bindings_activate_event" c:identifier="gtk_bindings_activate_event" version="2.4"> <doc xml:space="preserve">Looks up key bindings for @object to find one matching @event, and if one was found, activate it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if a matching key binding was found</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="object" transfer-ownership="none"> <doc xml:space="preserve">a #GObject (generally must be a widget)</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEventKey</doc> <type name="Gdk.EventKey" c:type="GdkEventKey*"/> </parameter> </parameters> </function> <function name="builder_error_quark" c:identifier="gtk_builder_error_quark" moved-to="BuilderError.quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> <function name="cairo_should_draw_window" c:identifier="gtk_cairo_should_draw_window" version="3.0"> <doc xml:space="preserve">This function is supposed to be called in #GtkWidget::draw implementations for widgets that support multiple windows. @cr must be untransformed from invoking of the draw function. This function will return %TRUE if the contents of the given @window are supposed to be drawn and %FALSE otherwise. Note that when the drawing was not initiated by the windowing system this function will return %TRUE for all windows, so you need to draw the bottommost window first. Also, do not use âelse ifâ statements to check which window should be drawn.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @window should be drawn</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a cairo context</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">the window to check. @window may not be an input-only window.</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </function> <function name="cairo_transform_to_window" c:identifier="gtk_cairo_transform_to_window" version="3.0"> <doc xml:space="preserve">Transforms the given cairo context @cr that from @widget-relative coordinates to @window-relative coordinates. If the @widgetâs window is not an ancestor of @window, no modification will be applied. This is the inverse to the transformation GTK applies when preparing an expose event to be emitted with the #GtkWidget::draw signal. It is intended to help porting multiwindow widgets from GTK+ 2 to the rendering architecture of GTK+ 3.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">the cairo context to transform</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget the context is currently centered for</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="window" transfer-ownership="none"> <doc xml:space="preserve">the window to transform the context to</doc> <type name="Gdk.Window" c:type="GdkWindow*"/> </parameter> </parameters> </function> <function name="check_version" c:identifier="gtk_check_version"> <doc xml:space="preserve">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+.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">%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.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <parameter name="required_major" transfer-ownership="none"> <doc xml:space="preserve">the required major version</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="required_minor" transfer-ownership="none"> <doc xml:space="preserve">the required minor version</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="required_micro" transfer-ownership="none"> <doc xml:space="preserve">the required micro version</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </function> <function name="css_provider_error_quark" c:identifier="gtk_css_provider_error_quark" moved-to="CssProviderError.quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> <function name="device_grab_add" c:identifier="gtk_device_grab_add" version="3.0"> <doc xml:space="preserve">Adds a GTK+ grab on @device, so all the events on @device and its associated pointer or keyboard (if any) are delivered to @widget. If the @block_others parameter is %TRUE, any other devices will be unable to interact with @widget during the grab.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice to grab on.</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> <parameter name="block_others" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to prevent other devices to interact with @widget.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="device_grab_remove" c:identifier="gtk_device_grab_remove" version="3.0"> <doc xml:space="preserve">Removes a device grab from the given widget. You have to pair calls to gtk_device_grab_add() and gtk_device_grab_remove().</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="device" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDevice</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </parameter> </parameters> </function> <function name="disable_setlocale" c:identifier="gtk_disable_setlocale"> <doc xml:space="preserve">Prevents gtk_init(), gtk_init_check(), gtk_init_with_args() and gtk_parse_args() from automatically calling `setlocale (LC_ALL, "")`. 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </function> <function name="distribute_natural_allocation" c:identifier="gtk_distribute_natural_allocation"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The remainder of @extra_space after redistributing space to @sizes.</doc> <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="extra_space" transfer-ownership="none"> <doc xml:space="preserve">Extra space to redistribute among children after subtracting minimum sizes and any child padding from the overall allocation</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="n_requested_sizes" transfer-ownership="none"> <doc xml:space="preserve">Number of requests to fit into the allocation</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="sizes" transfer-ownership="none"> <doc xml:space="preserve">An array of structs with a client pointer and a minimum/natural size in the orientation of the allocation.</doc> <type name="RequestedSize" c:type="GtkRequestedSize*"/> </parameter> </parameters> </function> <function name="drag_cancel" c:identifier="gtk_drag_cancel" version="3.16"> <doc xml:space="preserve">Cancels an ongoing drag operation on the source side. If you want to be able to cancel a drag operation in this way, you need to keep a pointer to the drag context, either from an explicit call to gtk_drag_begin_with_coordinates(), or by connecting to #GtkWidget::drag-begin. If @context does not refer to an ongoing drag operation, this function does nothing. If a drag is cancelled in this way, the @result argument of #GtkWidget::drag-failed is set to @GTK_DRAG_RESULT_ERROR.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GdkDragContext, as e.g. returned by gtk_drag_begin_with_coordinates()</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </function> <function name="drag_finish" c:identifier="gtk_drag_finish"> <doc xml:space="preserve">Informs the drag source that the drop is finished, and that the data of the drag will no longer be required.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the drag context</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="success" transfer-ownership="none"> <doc xml:space="preserve">a flag indicating whether the drop was successful</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="del" transfer-ownership="none"> <doc xml:space="preserve">a flag indicating whether the source should delete the original data. (This should be %TRUE for a move)</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="time_" transfer-ownership="none"> <doc xml:space="preserve">the timestamp from the #GtkWidget::drag-drop signal</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </function> <function name="drag_get_source_widget" c:identifier="gtk_drag_get_source_widget"> <doc xml:space="preserve">Determines the source widget for a drag.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">if the drag is occurring within a single application, a pointer to the source widget. Otherwise, %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a (destination side) drag context</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </function> <function name="drag_set_icon_default" c:identifier="gtk_drag_set_icon_default"> <doc xml:space="preserve">Sets the icon for a particular drag to the default icon.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the context for a drag (This must be called with a context for the source side of a drag)</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> </parameters> </function> <function name="drag_set_icon_gicon" c:identifier="gtk_drag_set_icon_gicon" version="3.2"> <doc xml:space="preserve">Sets the icon for a given drag from the given @icon. See the documentation for gtk_drag_set_icon_name() for more details about using icons in drag and drop.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the context for a drag (This must be called with a context for the source side of a drag)</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="icon" transfer-ownership="none"> <doc xml:space="preserve">a #GIcon</doc> <type name="Gio.Icon" c:type="GIcon*"/> </parameter> <parameter name="hot_x" transfer-ownership="none"> <doc xml:space="preserve">the X offset of the hotspot within the icon</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="hot_y" transfer-ownership="none"> <doc xml:space="preserve">the Y offset of the hotspot within the icon</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="drag_set_icon_name" c:identifier="gtk_drag_set_icon_name" version="2.8"> <doc xml:space="preserve">Sets the icon for a given drag from a named themed icon. See the docs for #GtkIconTheme for more details. Note that the size of the icon depends on the icon theme (the icon is loaded at the symbolic size #GTK_ICON_SIZE_DND), thus @hot_x and @hot_y have to be used with care.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the context for a drag (This must be called with a context for the source side of a drag)</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="icon_name" transfer-ownership="none"> <doc xml:space="preserve">name of icon to use</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="hot_x" transfer-ownership="none"> <doc xml:space="preserve">the X offset of the hotspot within the icon</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="hot_y" transfer-ownership="none"> <doc xml:space="preserve">the Y offset of the hotspot within the icon</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="drag_set_icon_pixbuf" c:identifier="gtk_drag_set_icon_pixbuf"> <doc xml:space="preserve">Sets @pixbuf as the icon for a given drag.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the context for a drag (This must be called with a context for the source side of a drag)</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">the #GdkPixbuf to use as the drag icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> <parameter name="hot_x" transfer-ownership="none"> <doc xml:space="preserve">the X offset within @widget of the hotspot</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="hot_y" transfer-ownership="none"> <doc xml:space="preserve">the Y offset within @widget of the hotspot</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="drag_set_icon_stock" c:identifier="gtk_drag_set_icon_stock" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets the icon for a given drag from a stock ID.</doc> <doc-deprecated xml:space="preserve">Use gtk_drag_set_icon_name() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the context for a drag (This must be called with a context for the source side of a drag)</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">the ID of the stock icon to use for the drag</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="hot_x" transfer-ownership="none"> <doc xml:space="preserve">the X offset within the icon of the hotspot</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="hot_y" transfer-ownership="none"> <doc xml:space="preserve">the Y offset within the icon of the hotspot</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="drag_set_icon_surface" c:identifier="gtk_drag_set_icon_surface"> <doc xml:space="preserve">Sets @surface as the icon for a given drag. GTK+ retains references for the arguments, and will release them when they are no longer needed. To position the surface relative to the mouse, use cairo_surface_set_device_offset() on @surface. The mouse cursor will be positioned at the (0,0) coordinate of the surface.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the context for a drag (This must be called with a context for the source side of a drag)</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="surface" transfer-ownership="none"> <doc xml:space="preserve">the surface to use as icon</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </parameter> </parameters> </function> <function name="drag_set_icon_widget" c:identifier="gtk_drag_set_icon_widget"> <doc xml:space="preserve">Changes the icon for drag operation to a given widget. GTK+ will not destroy the widget, so if you donât want it to persist, you should connect to the âdrag-endâ signal and destroy it yourself.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">the context for a drag. (This must be called with a context for the source side of a drag)</doc> <type name="Gdk.DragContext" c:type="GdkDragContext*"/> </parameter> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a widget to use as an icon</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="hot_x" transfer-ownership="none"> <doc xml:space="preserve">the X offset within @widget of the hotspot</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="hot_y" transfer-ownership="none"> <doc xml:space="preserve">the Y offset within @widget of the hotspot</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="draw_insertion_cursor" c:identifier="gtk_draw_insertion_cursor" version="3.0" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Draws a text caret on @cr at @location. This is not a style function but merely a convenience function for drawing the standard cursor shape.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_insertion_cursor() instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">cairo context to draw to</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="location" transfer-ownership="none"> <doc xml:space="preserve">location where to draw the cursor (@location->width is ignored)</doc> <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/> </parameter> <parameter name="is_primary" transfer-ownership="none"> <doc xml:space="preserve">if the cursor should be the primary cursor color.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">whether the cursor is left-to-right or right-to-left. Should never be #GTK_TEXT_DIR_NONE</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </parameter> <parameter name="draw_arrow" transfer-ownership="none"> <doc xml:space="preserve">%TRUE to draw a directional arrow on the cursor. Should be %FALSE unless the cursor is split.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="events_pending" c:identifier="gtk_events_pending"> <doc xml:space="preserve">Checks if any events are pending. This can be used to update the UI and invoke timeouts etc. while doing some time intensive computation. ## Updating the UI during a long computation |[<!-- language="C" --> // computation going on... while (gtk_events_pending ()) gtk_main_iteration (); // ...computation continued ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if any events are pending, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </function> <function name="false" c:identifier="gtk_false"> <doc xml:space="preserve">Analogical to gtk_true(), this function does nothing but always returns %FALSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%FALSE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </function> <function name="file_chooser_error_quark" c:identifier="gtk_file_chooser_error_quark" moved-to="FileChooserError.quark" version="2.4"> <doc xml:space="preserve">Registers an error quark for #GtkFileChooser if necessary.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The error quark used for #GtkFileChooser errors.</doc> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> <function name="get_binary_age" c:identifier="gtk_get_binary_age" version="3.0"> <doc xml:space="preserve">Returns the binary age as passed to `libtool` when building the GTK+ library the process is running against. If `libtool` means nothing to you, don't worry about it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the binary age of the GTK+ library</doc> <type name="guint" c:type="guint"/> </return-value> </function> <function name="get_current_event" c:identifier="gtk_get_current_event"> <doc xml:space="preserve">Obtains a copy of the event currently being processed by GTK+. For example, if you are handling a #GtkButton::clicked signal, the current event will be the #GdkEventButton that triggered the ::clicked signal.</doc> <return-value transfer-ownership="full" nullable="1"> <doc xml:space="preserve">a copy of the current event, or %NULL if there is no current event. The returned event must be freed with gdk_event_free().</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </return-value> </function> <function name="get_current_event_device" c:identifier="gtk_get_current_event_device"> <doc xml:space="preserve">If there is a current event and it has a device, return that device, otherwise return %NULL.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a #GdkDevice, or %NULL</doc> <type name="Gdk.Device" c:type="GdkDevice*"/> </return-value> </function> <function name="get_current_event_state" c:identifier="gtk_get_current_event_state"> <doc xml:space="preserve">If there is a current event and it has a state field, place that state field in @state and return %TRUE, otherwise return %FALSE.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if there was a current event and it had a state field</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="state" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">a location to store the state of the current event</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType*"/> </parameter> </parameters> </function> <function name="get_current_event_time" c:identifier="gtk_get_current_event_time"> <doc xml:space="preserve">If there is a current event and it has a timestamp, return that timestamp, otherwise return %GDK_CURRENT_TIME.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the timestamp from the current event, or %GDK_CURRENT_TIME.</doc> <type name="guint32" c:type="guint32"/> </return-value> </function> <function name="get_debug_flags" c:identifier="gtk_get_debug_flags"> <doc xml:space="preserve">Returns the GTK+ debug flags. This function is intended for GTK+ modules that want to adjust their debug output based on GTK+ debug flags.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the GTK+ debug flags.</doc> <type name="guint" c:type="guint"/> </return-value> </function> <function name="get_default_language" c:identifier="gtk_get_default_language"> <doc xml:space="preserve">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 pango_language_get_default(). See that function for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the default language as a #PangoLanguage, must not be freed</doc> <type name="Pango.Language" c:type="PangoLanguage*"/> </return-value> </function> <function name="get_event_widget" c:identifier="gtk_get_event_widget"> <doc xml:space="preserve">If @event is %NULL or the event was not associated with any widget, returns %NULL, otherwise returns the widget that received the event originally.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">the widget that originally received @event, or %NULL</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">a #GdkEvent</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </function> <function name="get_interface_age" c:identifier="gtk_get_interface_age" version="3.0"> <doc xml:space="preserve">Returns the interface age as passed to `libtool` when building the GTK+ library the process is running against. If `libtool` means nothing to you, don't worry about it.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the interface age of the GTK+ library</doc> <type name="guint" c:type="guint"/> </return-value> </function> <function name="get_locale_direction" c:identifier="gtk_get_locale_direction" version="3.12"> <doc xml:space="preserve">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 direcion. 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: |[<!-- language="C" --> setlocale (LC_ALL, new_locale); direction = gtk_get_locale_direction (); gtk_widget_set_default_direction (direction); ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the #GtkTextDirection of the current locale</doc> <type name="TextDirection" c:type="GtkTextDirection"/> </return-value> </function> <function name="get_major_version" c:identifier="gtk_get_major_version" version="3.0"> <doc xml:space="preserve">Returns the major version number of the GTK+ library. (e.g. 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the major version number of the GTK+ library</doc> <type name="guint" c:type="guint"/> </return-value> </function> <function name="get_micro_version" c:identifier="gtk_get_micro_version" version="3.0"> <doc xml:space="preserve">Returns the micro version number of the GTK+ library. (e.g. 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the micro version number of the GTK+ library</doc> <type name="guint" c:type="guint"/> </return-value> </function> <function name="get_minor_version" c:identifier="gtk_get_minor_version" version="3.0"> <doc xml:space="preserve">Returns the minor version number of the GTK+ library. (e.g. 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the minor version number of the GTK+ library</doc> <type name="guint" c:type="guint"/> </return-value> </function> <function name="get_option_group" c:identifier="gtk_get_option_group" version="2.6"> <doc xml:space="preserve">Returns a #GOptionGroup for the commandline arguments recognized by GTK+ and GDK. You should add this group to your #GOptionContext with g_option_context_add_group(), if you are using g_option_context_parse() to parse your commandline arguments.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a #GOptionGroup for the commandline arguments recognized by GTK+</doc> <type name="GLib.OptionGroup" c:type="GOptionGroup*"/> </return-value> <parameters> <parameter name="open_default_display" transfer-ownership="none"> <doc xml:space="preserve">whether to open the default display when parsing the commandline arguments</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="grab_get_current" c:identifier="gtk_grab_get_current"> <doc xml:space="preserve">Queries the current grab of the default window group.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">The widget which currently has the grab or %NULL if no grab is active</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> </function> <function name="icon_size_from_name" c:identifier="gtk_icon_size_from_name" moved-to="IconSize.from_name" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Looks up the icon size associated with @name.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">the name to look up.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="icon_size_get_name" c:identifier="gtk_icon_size_get_name" moved-to="IconSize.get_name" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Gets the canonical name of the given icon size. The returned string is statically allocated and should not be freed.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name of the given icon size.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> <parameters> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">a #GtkIconSize.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </function> <function name="icon_size_lookup" c:identifier="gtk_icon_size_lookup" moved-to="IconSize.lookup"> <doc xml:space="preserve">Obtains the pixel size of a semantic icon size @size: #GTK_ICON_SIZE_MENU, #GTK_ICON_SIZE_BUTTON, etc. This function isnât normally needed, gtk_icon_theme_load_icon() is the usual way to get an icon for rendering, then just look at the size of the rendered pixbuf. The rendered pixbuf may not even correspond to the width/height returned by gtk_icon_size_lookup(), because themes are free to render the pixbuf however they like, including changing the usual size.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @size was a valid size</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">an icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store icon width</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store icon height</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </function> <function name="icon_size_lookup_for_settings" c:identifier="gtk_icon_size_lookup_for_settings" moved-to="IconSize.lookup_for_settings" version="2.2" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Obtains the pixel size of a semantic icon size, possibly modified by user preferences for a particular #GtkSettings. Normally @size would be #GTK_ICON_SIZE_MENU, #GTK_ICON_SIZE_BUTTON, etc. This function isnât normally needed, gtk_widget_render_icon_pixbuf() is the usual way to get an icon for rendering, then just look at the size of the rendered pixbuf. The rendered pixbuf may not even correspond to the width/height returned by gtk_icon_size_lookup(), because themes are free to render the pixbuf however they like, including changing the usual size.</doc> <doc-deprecated xml:space="preserve">Use gtk_icon_size_lookup() instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @size was a valid size</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSettings object, used to determine which set of user preferences to used.</doc> <type name="Settings" c:type="GtkSettings*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">an icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store icon width</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> <doc xml:space="preserve">location to store icon height</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </function> <function name="icon_size_register" c:identifier="gtk_icon_size_register" moved-to="IconSize.register" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Registers a new icon size, along the same lines as #GTK_ICON_SIZE_MENU, etc. Returns the integer value for the size.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">integer value representing the size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </return-value> <parameters> <parameter name="name" transfer-ownership="none"> <doc xml:space="preserve">name of the icon size</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the icon width</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the icon height</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="icon_size_register_alias" c:identifier="gtk_icon_size_register_alias" moved-to="IconSize.register_alias" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Registers @alias as another name for @target. So calling gtk_icon_size_from_name() with @alias as argument will return @target.</doc> <doc-deprecated xml:space="preserve">Use #GtkIconTheme instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="alias" transfer-ownership="none"> <doc xml:space="preserve">an alias for @target</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">an existing icon size (#GtkIconSize)</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </function> <function name="icon_theme_error_quark" c:identifier="gtk_icon_theme_error_quark" moved-to="IconThemeError.quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> <function name="init" c:identifier="gtk_init"> <doc xml:space="preserve">Call this function before using any other GTK+ functions in your GUI applications. It will initialize everything needed to operate the toolkit and parses some standard command line options. Although you are expected to pass the @argc, @argv parameters from main() to this function, it is possible to pass %NULL if @argv is not available or commandline handling is not required. @argc and @argv are adjusted accordingly so your own code will never see those standard arguments. Note that there are some alternative ways to initialize GTK+: if you are calling gtk_parse_args(), gtk_init_check(), gtk_init_with_args() or g_option_context_parse() with the option group returned by gtk_get_option_group(), you donât have to call gtk_init(). And if you are using #GtkApplication, you don't have to call any of the initialization functions either; the #GtkApplication::startup handler does it for you. 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 you want to call gtk_init_check() instead. Since 2.18, 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="argc" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Address of the `argc` parameter of your main() function (or 0 if @argv is %NULL). This will be changed if any arguments were handled.</doc> <type name="gint" c:type="int*"/> </parameter> <parameter name="argv" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> <doc xml:space="preserve">Address of the `argv` parameter of main(), or %NULL. Any options understood by GTK+ are stripped before return.</doc> <array length="0" zero-terminated="0" c:type="char***"> <type name="utf8" c:type="char**"/> </array> </parameter> </parameters> </function> <function name="init_check" c:identifier="gtk_init_check"> <doc xml:space="preserve">This function does the same work as gtk_init() with only a single change: It does not terminate the program if the commandline arguments couldnât be parsed or 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.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the commandline arguments (if any) were valid and the windowing system has been successfully initialized, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="argc" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Address of the `argc` parameter of your main() function (or 0 if @argv is %NULL). This will be changed if any arguments were handled.</doc> <type name="gint" c:type="int*"/> </parameter> <parameter name="argv" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> <doc xml:space="preserve">Address of the `argv` parameter of main(), or %NULL. Any options understood by GTK+ are stripped before return.</doc> <array length="0" zero-terminated="0" c:type="char***"> <type name="utf8" c:type="char**"/> </array> </parameter> </parameters> </function> <function name="init_with_args" c:identifier="gtk_init_with_args" version="2.6" throws="1"> <doc xml:space="preserve">This function does the same work as gtk_init_check(). Additionally, it allows you to add your own commandline options, and it automatically generates nicely formatted `--help` output. Note that your program will be terminated after writing out the help output.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the commandline arguments (if any) were valid and if the windowing system has been successfully initialized, %FALSE otherwise</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="argc" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Address of the `argc` parameter of your main() function (or 0 if @argv is %NULL). This will be changed if any arguments were handled.</doc> <type name="gint" c:type="gint*"/> </parameter> <parameter name="argv" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> <doc xml:space="preserve">Address of the `argv` parameter of main(), or %NULL. Any options understood by GTK+ are stripped before return.</doc> <array length="0" zero-terminated="0" c:type="gchar***"> <type name="utf8" c:type="gchar**"/> </array> </parameter> <parameter name="parameter_string" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a string which is displayed in the first line of `--help` output, after `programname [OPTION...]`</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="entries" transfer-ownership="none"> <doc xml:space="preserve">a %NULL-terminated array of #GOptionEntrys describing the options of your program</doc> <array c:type="GOptionEntry*"> <type name="GLib.OptionEntry" c:type="GOptionEntry"/> </array> </parameter> <parameter name="translation_domain" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a translation domain to use for translating the `--help` output for the options in @entries and the @parameter_string with gettext(), or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="key_snooper_install" c:identifier="gtk_key_snooper_install" introspectable="0" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Installs a key snooper function, which will get called on all key events before delivering them normally.</doc> <doc-deprecated xml:space="preserve">Key snooping should not be done. Events should be handled by widgets.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a unique id for this key snooper for use with gtk_key_snooper_remove().</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="snooper" transfer-ownership="none" closure="1"> <doc xml:space="preserve">a #GtkKeySnoopFunc</doc> <type name="KeySnoopFunc" c:type="GtkKeySnoopFunc"/> </parameter> <parameter name="func_data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to @snooper</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </function> <function name="key_snooper_remove" c:identifier="gtk_key_snooper_remove" deprecated="1" deprecated-version="3.4"> <doc xml:space="preserve">Removes the key snooper function with the given id.</doc> <doc-deprecated xml:space="preserve">Key snooping should not be done. Events should be handled by widgets.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="snooper_handler_id" transfer-ownership="none"> <doc xml:space="preserve">Identifies the key snooper to remove</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </function> <function name="main" c:identifier="gtk_main"> <doc xml:space="preserve">Runs the main loop until gtk_main_quit() is called. You can nest calls to gtk_main(). In that case gtk_main_quit() will make the innermost invocation of the main loop return.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </function> <function name="main_do_event" c:identifier="gtk_main_do_event"> <doc xml:space="preserve">Processes a single GDK event. This is public only to allow filtering of events between GDK and GTK+. You will not usually need to call this function directly. While you should not call this function directly, you might want to know how exactly events are handled. So here is what this function does with the event: 1. Compress enter/leave notify events. If the event passed build an enter/leave pair together with the next event (peeked from GDK), both events are thrown away. This is to avoid a backlog of (de-)highlighting widgets crossed by the pointer. 2. Find the widget which got the event. If the widget canât be determined the event is thrown away unless it belongs to a INCR transaction. 3. Then the event is pushed onto a stack so you can query the currently handled event with gtk_get_current_event(). 4. The event is sent to a widget. If a grab is active all events for widgets that are not in the contained in the grab widget are sent to the latter with a few exceptions: - Deletion and destruction events are still sent to the event widget for obvious reasons. - Events which directly relate to the visual representation of the event widget. - Leave events are delivered to the event widget if there was an enter event delivered to it before without the paired leave event. - Drag events are not redirected because it is unclear what the semantics of that would be. Another point of interest might be that all key events are first passed through the key snooper functions if there are any. Read the description of gtk_key_snooper_install() if you need this feature. 5. After finishing the delivery the event is popped from the event stack.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">An event to process (normally passed by GDK)</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </function> <function name="main_iteration" c:identifier="gtk_main_iteration"> <doc xml:space="preserve">Runs a single iteration of the mainloop. If no events are waiting to be processed GTK+ will block until the next event is noticed. If you donât want to block look at gtk_main_iteration_do() or check if any events are pending with gtk_events_pending() first.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if gtk_main_quit() has been called for the innermost mainloop</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </function> <function name="main_iteration_do" c:identifier="gtk_main_iteration_do"> <doc xml:space="preserve">Runs a single iteration of the mainloop. If no events are available either return or block depending on the value of @blocking.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if gtk_main_quit() has been called for the innermost mainloop</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="blocking" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if you want GTK+ to block if no events are pending</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="main_level" c:identifier="gtk_main_level"> <doc xml:space="preserve">Asks for the current nesting level of the main loop.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the nesting level of the current invocation of the main loop</doc> <type name="guint" c:type="guint"/> </return-value> </function> <function name="main_quit" c:identifier="gtk_main_quit"> <doc xml:space="preserve">Makes the innermost invocation of the main loop return when it regains control.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </function> <function name="paint_arrow" c:identifier="gtk_paint_arrow" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws an arrow in the given rectangle on @cr using the given parameters. @arrow_type determines the direction of the arrow.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_arrow() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">the type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="arrow_type" transfer-ownership="none"> <doc xml:space="preserve">the type of arrow to draw</doc> <type name="ArrowType" c:type="GtkArrowType"/> </parameter> <parameter name="fill" transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the arrow tip should be filled</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the rectangle to draw the arrow in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the rectangle to draw the arrow in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width of the rectangle to draw the arrow in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height of the rectangle to draw the arrow in</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_box" c:identifier="gtk_paint_box" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a box on @cr with the given parameters.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_frame() and gtk_render_background() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">the type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the box</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the box</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the box</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the box</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_box_gap" c:identifier="gtk_paint_box_gap" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a box in @cr using the given style and state and shadow type, leaving a gap in one side.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_frame_gap() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">width of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <doc xml:space="preserve">side in which to leave the gap</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="gap_x" transfer-ownership="none"> <doc xml:space="preserve">starting position of the gap</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_width" transfer-ownership="none"> <doc xml:space="preserve">width of the gap</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_check" c:identifier="gtk_paint_check" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a check button indicator in the given rectangle on @cr with the given parameters.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_check() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">the type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the rectangle to draw the check in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the rectangle to draw the check in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the rectangle to draw the check in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the rectangle to draw the check in</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_diamond" c:identifier="gtk_paint_diamond" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a diamond in the given rectangle on @window using the given parameters.</doc> <doc-deprecated xml:space="preserve">Use cairo instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">the type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the rectangle to draw the diamond in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the rectangle to draw the diamond in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width of the rectangle to draw the diamond in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height of the rectangle to draw the diamond in</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_expander" c:identifier="gtk_paint_expander" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws an expander as used in #GtkTreeView. @x and @y specify the center the expander. The size of the expander is determined by the âexpander-sizeâ style property of @widget. (If widget is not specified or doesnât have an âexpander-sizeâ property, an unspecified default size will be used, since the caller doesn't have sufficient information to position the expander, this is likely not useful.) The expander is expander_size pixels tall in the collapsed position and expander_size pixels wide in the expanded position.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_expander() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x position to draw the expander at</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y position to draw the expander at</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="expander_style" transfer-ownership="none"> <doc xml:space="preserve">the style to draw the expander in; determines whether the expander is collapsed, expanded, or in an intermediate state.</doc> <type name="ExpanderStyle" c:type="GtkExpanderStyle"/> </parameter> </parameters> </function> <function name="paint_extension" c:identifier="gtk_paint_extension" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws an extension, i.e. a notebook tab.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_extension() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the extension</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the extension</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width of the extension</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">width of the extension</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <doc xml:space="preserve">the side on to which the extension is attached</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </function> <function name="paint_flat_box" c:identifier="gtk_paint_flat_box" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a flat box on @cr with the given parameters.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_frame() and gtk_render_background() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">the type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the box</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the box</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the box</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the box</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_focus" c:identifier="gtk_paint_focus" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a focus indicator around the given rectangle on @cr using the given style.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_focus() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x origin of the rectangle around which to draw a focus indicator</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y origin of the rectangle around which to draw a focus indicator</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the rectangle around which to draw a focus indicator</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the rectangle around which to draw a focus indicator</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_handle" c:identifier="gtk_paint_handle" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a handle as used in #GtkHandleBox and #GtkPaned.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_handle() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the handle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the handle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">with of the handle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">height of the handle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the orientation of the handle</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </function> <function name="paint_hline" c:identifier="gtk_paint_hline" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a horizontal line from (@x1, @y) to (@x2, @y) in @cr using the given style and state.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_line() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #caio_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x1" transfer-ownership="none"> <doc xml:space="preserve">the starting x coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="x2" transfer-ownership="none"> <doc xml:space="preserve">the ending x coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_layout" c:identifier="gtk_paint_layout" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a layout on @cr using the given parameters.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_layout() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="use_text" transfer-ownership="none"> <doc xml:space="preserve">whether to use the text or foreground graphics context of @style</doc> <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">the layout to draw</doc> <type name="Pango.Layout" c:type="PangoLayout*"/> </parameter> </parameters> </function> <function name="paint_option" c:identifier="gtk_paint_option" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a radio button indicator in the given rectangle on @cr with the given parameters.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_option() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">the type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the rectangle to draw the option in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the rectangle to draw the option in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the rectangle to draw the option in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the rectangle to draw the option in</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_resize_grip" c:identifier="gtk_paint_resize_grip" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a resize grip in the given rectangle on @cr using the given parameters.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_handle() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="edge" transfer-ownership="none"> <doc xml:space="preserve">the edge in which to draw the resize grip</doc> <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x origin of the rectangle in which to draw the resize grip</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y origin of the rectangle in which to draw the resize grip</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the rectangle in which to draw the resize grip</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the rectangle in which to draw the resize grip</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_shadow" c:identifier="gtk_paint_shadow" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a shadow around the given rectangle in @cr using the given style and state and shadow type.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_frame() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">width of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_shadow_gap" c:identifier="gtk_paint_shadow_gap" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a shadow around the given rectangle in @cr using the given style and state and shadow type, leaving a gap in one side.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_frame_gap() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">width of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">width of the rectangle</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <doc xml:space="preserve">side in which to leave the gap</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="gap_x" transfer-ownership="none"> <doc xml:space="preserve">starting position of the gap</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="gap_width" transfer-ownership="none"> <doc xml:space="preserve">width of the gap</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_slider" c:identifier="gtk_paint_slider" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a slider in the given rectangle on @cr using the given style and orientation.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_slider() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">a shadow</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x origin of the rectangle in which to draw a slider</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y origin of the rectangle in which to draw a slider</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the rectangle in which to draw a slider</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the rectangle in which to draw a slider</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">the orientation to be used</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </function> <function name="paint_spinner" c:identifier="gtk_paint_spinner" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a spinner on @window using the given parameters.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_icon() and the #GtkStyleContext you are drawing instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget (may be %NULL)</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail (may be %NULL)</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="step" transfer-ownership="none"> <doc xml:space="preserve">the nth step</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x origin of the rectangle in which to draw the spinner</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">the y origin of the rectangle in which to draw the spinner</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the rectangle in which to draw the spinner</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the rectangle in which to draw the spinner</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_tab" c:identifier="gtk_paint_tab" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws an option menu tab (i.e. the up and down pointing arrows) in the given rectangle on @cr using the given parameters.</doc> <doc-deprecated xml:space="preserve">Use cairo instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="shadow_type" transfer-ownership="none"> <doc xml:space="preserve">the type of shadow to draw</doc> <type name="ShadowType" c:type="GtkShadowType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">x origin of the rectangle to draw the tab in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">y origin of the rectangle to draw the tab in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">the width of the rectangle to draw the tab in</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">the height of the rectangle to draw the tab in</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paint_vline" c:identifier="gtk_paint_vline" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Draws a vertical line from (@x, @y1_) to (@x, @y2_) in @cr using the given style and state.</doc> <doc-deprecated xml:space="preserve">Use gtk_render_line() instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="style" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyle</doc> <type name="Style" c:type="GtkStyle*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="state_type" transfer-ownership="none"> <doc xml:space="preserve">a state</doc> <type name="StateType" c:type="GtkStateType"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="detail" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a style detail</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="y1_" transfer-ownership="none"> <doc xml:space="preserve">the starting y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="y2_" transfer-ownership="none"> <doc xml:space="preserve">the ending y coordinate</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">the x coordinate</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="paper_size_get_default" c:identifier="gtk_paper_size_get_default" moved-to="PaperSize.get_default" version="2.10"> <doc xml:space="preserve">Returns the name of the default paper size, which depends on the current locale.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">the name of the default paper size. The string is owned by GTK+ and should not be modified.</doc> <type name="utf8" c:type="const gchar*"/> </return-value> </function> <function name="paper_size_get_paper_sizes" c:identifier="gtk_paper_size_get_paper_sizes" moved-to="PaperSize.get_paper_sizes" version="2.12"> <doc xml:space="preserve">Creates a list of known paper sizes.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly allocated list of newly allocated #GtkPaperSize objects</doc> <type name="GLib.List" c:type="GList*"> <type name="PaperSize"/> </type> </return-value> <parameters> <parameter name="include_custom" transfer-ownership="none"> <doc xml:space="preserve">whether to include custom paper sizes as defined in the page setup dialog</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="parse_args" c:identifier="gtk_parse_args"> <doc xml:space="preserve">Parses command line arguments, and initializes global attributes of GTK+, but does not actually open a connection to a display. (See gdk_display_open(), gdk_get_display_arg_name()) Any arguments used by GTK+ or GDK are removed from the array and @argc and @argv are updated accordingly. There is no need to call this function explicitly if you are using gtk_init(), or gtk_init_check(). Note that many aspects of GTK+ require a display connection to function, so this way of initializing GTK+ is really only useful for specialized use cases.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if initialization succeeded, otherwise %FALSE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="argc" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">a pointer to the number of command line arguments</doc> <type name="gint" c:type="int*"/> </parameter> <parameter name="argv" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">a pointer to the array of command line arguments</doc> <array length="0" zero-terminated="0" c:type="char***"> <type name="utf8" c:type="char**"/> </array> </parameter> </parameters> </function> <function name="print_error_quark" c:identifier="gtk_print_error_quark" moved-to="PrintError.quark" version="2.10"> <doc xml:space="preserve">Registers an error quark for #GtkPrintOperation if necessary.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">The error quark used for #GtkPrintOperation errors.</doc> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> <function name="print_run_page_setup_dialog" c:identifier="gtk_print_run_page_setup_dialog" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a new #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">transient parent</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="page_setup" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing #GtkPageSetup</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </parameter> </parameters> </function> <function name="print_run_page_setup_dialog_async" c:identifier="gtk_print_run_page_setup_dialog_async" version="2.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">transient parent, or %NULL</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="page_setup" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">an existing #GtkPageSetup, or %NULL</doc> <type name="PageSetup" c:type="GtkPageSetup*"/> </parameter> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkPrintSettings</doc> <type name="PrintSettings" c:type="GtkPrintSettings*"/> </parameter> <parameter name="done_cb" transfer-ownership="none" scope="async" closure="4"> <doc xml:space="preserve">a function to call when the user saves the modified page setup</doc> <type name="PageSetupDoneFunc" c:type="GtkPageSetupDoneFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">user data to pass to @done_cb</doc> <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </function> <function name="propagate_event" c:identifier="gtk_propagate_event"> <doc xml:space="preserve">Sends an event to a widget, propagating the event to parent widgets if the event remains unhandled. Events received by GTK+ from GDK normally begin in gtk_main_do_event(). Depending on the type of event, existence of modal dialogs, grabs, etc., the event may be propagated; if so, this function is used. gtk_propagate_event() calls gtk_widget_event() on each widget it decides to send the event to. So gtk_widget_event() is the lowest-level function; it simply emits the #GtkWidget::event and possibly an event-specific signal on a widget. gtk_propagate_event() is a bit higher-level, and gtk_main_do_event() is the highest level. 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 gdk_window_invalidate_rect() or gtk_widget_queue_draw() instead of making up expose events.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="event" transfer-ownership="none"> <doc xml:space="preserve">an event</doc> <type name="Gdk.Event" c:type="GdkEvent*"/> </parameter> </parameters> </function> <function name="rc_add_default_file" c:identifier="gtk_rc_add_default_file" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Adds a file to the list of files to be parsed at the end of gtk_init().</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext with a custom #GtkStyleProvider instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the pathname to the file. If @filename is not absolute, it is searched in the current directory.</doc> <type name="filename" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="rc_find_module_in_path" c:identifier="gtk_rc_find_module_in_path" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Searches for a theme engine in the GTK+ search path. This function is not useful for applications and should not be used.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">The filename, if found (must be freed with g_free()), otherwise %NULL.</doc> <type name="filename" c:type="gchar*"/> </return-value> <parameters> <parameter name="module_file" transfer-ownership="none"> <doc xml:space="preserve">name of a theme engine</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="rc_find_pixmap_in_path" c:identifier="gtk_rc_find_pixmap_in_path" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Looks up a file in pixmap path for the specified #GtkSettings. If the file is not found, it outputs a warning message using g_warning() and returns %NULL.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">the filename.</doc> <type name="filename" c:type="gchar*"/> </return-value> <parameters> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSettings</doc> <type name="Settings" c:type="GtkSettings*"/> </parameter> <parameter name="scanner" transfer-ownership="none"> <doc xml:space="preserve">Scanner used to get line number information for the warning message, or %NULL</doc> <type name="GLib.Scanner" c:type="GScanner*"/> </parameter> <parameter name="pixmap_file" transfer-ownership="none"> <doc xml:space="preserve">name of the pixmap file to locate.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="rc_get_default_files" c:identifier="gtk_rc_get_default_files" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Retrieves the current list of RC files that will be parsed at the end of gtk_init().</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve"> A %NULL-terminated array of filenames. This memory is owned by GTK+ and must not be freed by the application. If you want to store this information, you should make a copy.</doc> <array c:type="gchar**"> <type name="filename"/> </array> </return-value> </function> <function name="rc_get_im_module_file" c:identifier="gtk_rc_get_im_module_file" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Obtains the path to the IM modules file. See the documentation of the `GTK_IM_MODULE_FILE` environment variable for more details.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated string containing the name of the file listing the IM modules available for loading</doc> <type name="filename" c:type="gchar*"/> </return-value> </function> <function name="rc_get_im_module_path" c:identifier="gtk_rc_get_im_module_path" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Obtains the path in which to look for IM modules. See the documentation of the `GTK_PATH` environment variable for more details about looking up modules. This function is useful solely for utilities supplied with GTK+ and should not be used by applications under normal circumstances.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-allocated string containing the path in which to look for IM modules.</doc> <type name="filename" c:type="gchar*"/> </return-value> </function> <function name="rc_get_module_dir" c:identifier="gtk_rc_get_module_dir" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Returns a directory in which GTK+ looks for theme engines. For full information about the search for theme engines, see the docs for `GTK_PATH` in [Running GTK+ Applications][gtk-running].</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">the directory. (Must be freed with g_free())</doc> <type name="filename" c:type="gchar*"/> </return-value> </function> <function name="rc_get_style" c:identifier="gtk_rc_get_style" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Finds all matching RC styles for a given widget, composites them together, and then creates a #GtkStyle representing the composite appearance. (GTK+ actually keeps a cache of previously created styles, so a new style may not be created.)</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">the resulting style. No refcount is added to the returned style, so if you want to save this style around, you should add a reference yourself.</doc> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </function> <function name="rc_get_style_by_paths" c:identifier="gtk_rc_get_style_by_paths" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Creates up a #GtkStyle from styles defined in a RC file by providing the raw components used in matching. This function may be useful when creating pseudo-widgets that should be themed like widgets but donât actually have corresponding GTK+ widgets. An example of this would be items inside a GNOME canvas widget. The action of gtk_rc_get_style() is similar to: |[<!-- language="C" --> gtk_widget_path (widget, NULL, &path, NULL); gtk_widget_class_path (widget, NULL, &class_path, NULL); gtk_rc_get_style_by_paths (gtk_widget_get_settings (widget), path, class_path, G_OBJECT_TYPE (widget)); ]|</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext instead</doc-deprecated> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">A style created by matching with the supplied paths, or %NULL if nothing matching was specified and the default style should be used. The returned value is owned by GTK+ as part of an internal cache, so you must call g_object_ref() on the returned value if you want to keep a reference to it.</doc> <type name="Style" c:type="GtkStyle*"/> </return-value> <parameters> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSettings object</doc> <type name="Settings" c:type="GtkSettings*"/> </parameter> <parameter name="widget_path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the widget path to use when looking up the style, or %NULL if no matching against the widget path should be done</doc> <type name="utf8" c:type="const char*"/> </parameter> <parameter name="class_path" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">the class path to use when looking up the style, or %NULL if no matching against the class path should be done.</doc> <type name="utf8" c:type="const char*"/> </parameter> <parameter name="type" transfer-ownership="none"> <doc xml:space="preserve">a type that will be used along with parent types of this type when matching against class styles, or #G_TYPE_NONE</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </function> <function name="rc_get_theme_dir" c:identifier="gtk_rc_get_theme_dir" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Returns the standard directory in which themes should be installed. (GTK+ does not actually use this directory itself.)</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">The directory (must be freed with g_free()).</doc> <type name="utf8" c:type="gchar*"/> </return-value> </function> <function name="rc_parse" c:identifier="gtk_rc_parse" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Parses a given resource file.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="filename" transfer-ownership="none"> <doc xml:space="preserve">the filename of a file to parse. If @filename is not absolute, it is searched in the current directory.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="rc_parse_color" c:identifier="gtk_rc_parse_color" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Parses a color in the format expected in a RC file. Note that theme engines should use gtk_rc_parse_color_full() in order to support symbolic colors.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%G_TOKEN_NONE if parsing succeeded, otherwise the token that was expected but not found</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="scanner" transfer-ownership="none"> <doc xml:space="preserve">a #GScanner</doc> <type name="GLib.Scanner" c:type="GScanner*"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GdkColor in which to store the result</doc> <type name="Gdk.Color" c:type="GdkColor*"/> </parameter> </parameters> </function> <function name="rc_parse_color_full" c:identifier="gtk_rc_parse_color_full" version="2.12" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Parses a color in the format expected in a RC file. If @style is not %NULL, it will be consulted to resolve references to symbolic colors.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%G_TOKEN_NONE if parsing succeeded, otherwise the token that was expected but not found</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="scanner" transfer-ownership="none"> <doc xml:space="preserve">a #GScanner</doc> <type name="GLib.Scanner" c:type="GScanner*"/> </parameter> <parameter name="style" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkRcStyle, or %NULL</doc> <type name="RcStyle" c:type="GtkRcStyle*"/> </parameter> <parameter name="color" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">a pointer to a #GdkColor in which to store the result</doc> <type name="Gdk.Color" c:type="GdkColor*"/> </parameter> </parameters> </function> <function name="rc_parse_priority" c:identifier="gtk_rc_parse_priority" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Parses a #GtkPathPriorityType variable from the format expected in a RC file.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%G_TOKEN_NONE if parsing succeeded, otherwise the token that was expected but not found.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="scanner" transfer-ownership="none"> <doc xml:space="preserve">a #GScanner (must be initialized for parsing an RC file)</doc> <type name="GLib.Scanner" c:type="GScanner*"/> </parameter> <parameter name="priority" transfer-ownership="none"> <doc xml:space="preserve">A pointer to #GtkPathPriorityType variable in which to store the result.</doc> <type name="PathPriorityType" c:type="GtkPathPriorityType*"/> </parameter> </parameters> </function> <function name="rc_parse_state" c:identifier="gtk_rc_parse_state" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Parses a #GtkStateType variable from the format expected in a RC file.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%G_TOKEN_NONE if parsing succeeded, otherwise the token that was expected but not found.</doc> <type name="guint" c:type="guint"/> </return-value> <parameters> <parameter name="scanner" transfer-ownership="none"> <doc xml:space="preserve">a #GScanner (must be initialized for parsing an RC file)</doc> <type name="GLib.Scanner" c:type="GScanner*"/> </parameter> <parameter name="state" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">A pointer to a #GtkStateType variable in which to store the result.</doc> <type name="StateType" c:type="GtkStateType*"/> </parameter> </parameters> </function> <function name="rc_parse_string" c:identifier="gtk_rc_parse_string" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Parses resource information directly from a string.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="rc_string" transfer-ownership="none"> <doc xml:space="preserve">a string to parse.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="rc_property_parse_border" c:identifier="gtk_rc_property_parse_border" moved-to="RcProperty.parse_border"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses borders in the form `"{ left, right, top, bottom }"` for integers left, right, top and bottom.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting #GtkBorder.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold boxed values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="rc_property_parse_color" c:identifier="gtk_rc_property_parse_color" moved-to="RcProperty.parse_color"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses a color given either by its name or in the form `{ red, green, blue }` where red, green and blue are integers between 0 and 65535 or floating-point numbers between 0 and 1.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting #GdkColor.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold #GdkColor values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="rc_property_parse_enum" c:identifier="gtk_rc_property_parse_enum" moved-to="RcProperty.parse_enum"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses a single enumeration value. The enumeration value can be specified by its name, its nickname or its numeric value. For consistency with flags parsing, the value may be surrounded by parentheses.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting #GEnumValue.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold enum values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="rc_property_parse_flags" c:identifier="gtk_rc_property_parse_flags" moved-to="RcProperty.parse_flags"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses flags. Flags can be specified by their name, their nickname or numerically. Multiple flags can be specified in the form `"( flag1 | flag2 | ... )"`.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting flags value.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold flags values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="rc_property_parse_requisition" c:identifier="gtk_rc_property_parse_requisition" moved-to="RcProperty.parse_requisition"> <doc xml:space="preserve">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser() or gtk_widget_class_install_style_property_parser() which parses a requisition in the form `"{ width, height }"` for integers %width and %height.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @gstring could be parsed and @property_value has been set to the resulting #GtkRequisition.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="pspec" transfer-ownership="none"> <doc xml:space="preserve">a #GParamSpec</doc> <type name="GObject.ParamSpec" c:type="const GParamSpec*"/> </parameter> <parameter name="gstring" transfer-ownership="none"> <doc xml:space="preserve">the #GString to be parsed</doc> <type name="GLib.String" c:type="const GString*"/> </parameter> <parameter name="property_value" transfer-ownership="none"> <doc xml:space="preserve">a #GValue which must hold boxed values.</doc> <type name="GObject.Value" c:type="GValue*"/> </parameter> </parameters> </function> <function name="rc_reparse_all" c:identifier="gtk_rc_reparse_all" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">If the modification time on any previously read file for the default #GtkSettings has changed, discard all style information and then reread all previously read RC files.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the files were reread.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </function> <function name="rc_reparse_all_for_settings" c:identifier="gtk_rc_reparse_all_for_settings" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">If the modification time on any previously read file for the given #GtkSettings has changed, discard all style information and then reread all previously read RC files.</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the files were reread.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSettings</doc> <type name="Settings" c:type="GtkSettings*"/> </parameter> <parameter name="force_load" transfer-ownership="none"> <doc xml:space="preserve">load whether or not anything changed</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="rc_reset_styles" c:identifier="gtk_rc_reset_styles" version="2.4" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">This function recomputes the styles for all widgets that use a particular #GtkSettings object. (There is one #GtkSettings object per #GdkScreen, see gtk_settings_get_for_screen()); It is useful when some global parameter has changed that affects the appearance of all widgets, because when a widget gets a new style, it will both redraw and recompute any cached information about its appearance. As an example, it is used when the default font size set by the operating system changes. Note that this function doesnât affect widgets that have a style set explicitly on them with gtk_widget_set_style().</doc> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="settings" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSettings</doc> <type name="Settings" c:type="GtkSettings*"/> </parameter> </parameters> </function> <function name="rc_scanner_new" c:identifier="gtk_rc_scanner_new" introspectable="0" deprecated="1" deprecated-version="3.0"> <doc-deprecated xml:space="preserve">Use #GtkCssProvider instead</doc-deprecated> <return-value> <type name="GLib.Scanner" c:type="GScanner*"/> </return-value> </function> <function name="rc_set_default_files" c:identifier="gtk_rc_set_default_files" deprecated="1" deprecated-version="3.0"> <doc xml:space="preserve">Sets the list of files that GTK+ will read at the end of gtk_init().</doc> <doc-deprecated xml:space="preserve">Use #GtkStyleContext with a custom #GtkStyleProvider instead</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="filenames" transfer-ownership="none"> <doc xml:space="preserve">A %NULL-terminated list of filenames.</doc> <array c:type="gchar**"> <type name="filename"/> </array> </parameter> </parameters> </function> <function name="recent_chooser_error_quark" c:identifier="gtk_recent_chooser_error_quark" moved-to="RecentChooserError.quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> <function name="recent_manager_error_quark" c:identifier="gtk_recent_manager_error_quark" moved-to="RecentManagerError.quark"> <return-value transfer-ownership="none"> <type name="GLib.Quark" c:type="GQuark"/> </return-value> </function> <function name="render_activity" c:identifier="gtk_render_activity" version="3.0"> <doc xml:space="preserve">Renders an activity indicator (such as in #GtkSpinner). The state %GTK_STATE_FLAG_CHECKED determines whether there is activity going on.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_arrow" c:identifier="gtk_render_arrow" version="3.0"> <doc xml:space="preserve">Renders an arrow pointing to @angle. Typical arrow rendering at 0, 1â2 Ď;, Ď; and 3â2 Ď: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="angle" transfer-ownership="none"> <doc xml:space="preserve">arrow angle from 0 to 2 * %G_PI, being 0 the arrow pointing to the north</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the render area</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the render area</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">square side for render area</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_background" c:identifier="gtk_render_background" version="3.0."> <doc xml:space="preserve">Renders the background of an element. Typical background rendering, showing the effect of `background-image`, `border-width` and `border-radius`: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_background_get_clip" c:identifier="gtk_render_background_get_clip" version="3.20"> <doc xml:space="preserve">Returns the area that will be affected (i.e. drawn to) when calling gtk_render_background() for the given @context and rectangle.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="out_clip" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">return location for the clip</doc> <type name="Gdk.Rectangle" c:type="GdkRectangle*"/> </parameter> </parameters> </function> <function name="render_check" c:identifier="gtk_render_check" version="3.0"> <doc xml:space="preserve">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: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_expander" c:identifier="gtk_render_expander" version="3.0"> <doc xml:space="preserve">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: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_extension" c:identifier="gtk_render_extension" version="3.0"> <doc xml:space="preserve">Renders a extension (as in a #GtkNotebook tab) in the rectangle defined by @x, @y, @width, @height. The side where the extension connects to is defined by @gap_side. Typical extension rendering: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <doc xml:space="preserve">side where the gap is</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> </parameters> </function> <function name="render_focus" c:identifier="gtk_render_focus" version="3.0"> <doc xml:space="preserve">Renders a focus indicator on the rectangle determined by @x, @y, @width, @height. Typical focus rendering: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_frame" c:identifier="gtk_render_frame" version="3.0"> <doc xml:space="preserve">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: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_frame_gap" c:identifier="gtk_render_frame_gap" version="3.0"> <doc xml:space="preserve">Renders a frame around the rectangle defined by (@x, @y, @width, @height), leaving a gap on one side. @xy0_gap and @xy1_gap will mean X coordinates for %GTK_POS_TOP and %GTK_POS_BOTTOM gap sides, and Y coordinates for %GTK_POS_LEFT and %GTK_POS_RIGHT. Typical rendering of a frame with a gap: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="gap_side" transfer-ownership="none"> <doc xml:space="preserve">side where the gap is</doc> <type name="PositionType" c:type="GtkPositionType"/> </parameter> <parameter name="xy0_gap" transfer-ownership="none"> <doc xml:space="preserve">initial coordinate (X or Y depending on @gap_side) for the gap</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="xy1_gap" transfer-ownership="none"> <doc xml:space="preserve">end coordinate (X or Y depending on @gap_side) for the gap</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_handle" c:identifier="gtk_render_handle" version="3.0"> <doc xml:space="preserve">Renders a handle (as in #GtkHandleBox, #GtkPaned and #GtkWindowâs resize grip), in the rectangle determined by @x, @y, @width, @height. Handles rendered for the paned and grip classes: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_icon" c:identifier="gtk_render_icon" version="3.2"> <doc xml:space="preserve">Renders the icon in @pixbuf at the specified @x and @y coordinates. This function will render the icon in @pixbuf at exactly its size, regardless of scaling factors, which may not be appropriate when drawing on displays with high pixel densities. You probably want to use gtk_render_icon_surface() instead, if you already have a Cairo surface.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="pixbuf" transfer-ownership="none"> <doc xml:space="preserve">a #GdkPixbuf containing the icon to draw</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X position for the @pixbuf</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y position for the @pixbuf</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_icon_pixbuf" c:identifier="gtk_render_icon_pixbuf" version="3.0" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Renders the icon specified by @source at the given @size, returning the result in a pixbuf.</doc> <doc-deprecated xml:space="preserve">Use gtk_icon_theme_load_icon() instead.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a newly-created #GdkPixbuf containing the rendered icon</doc> <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="source" transfer-ownership="none"> <doc xml:space="preserve">the #GtkIconSource specifying the icon to render</doc> <type name="IconSource" c:type="const GtkIconSource*"/> </parameter> <parameter name="size" transfer-ownership="none"> <doc xml:space="preserve">the size (#GtkIconSize) to render the icon at. A size of `(GtkIconSize) -1` means render at the size of the source and donât scale.</doc> <type name="gint" c:type="GtkIconSize"/> </parameter> </parameters> </function> <function name="render_icon_surface" c:identifier="gtk_render_icon_surface" version="3.10"> <doc xml:space="preserve">Renders the icon in @surface at the specified @x and @y coordinates.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="surface" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_surface_t containing the icon to draw</doc> <type name="cairo.Surface" c:type="cairo_surface_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X position for the @icon</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y position for the @incon</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_insertion_cursor" c:identifier="gtk_render_insertion_cursor" version="3.4"> <doc xml:space="preserve">Draws a text caret on @cr at the specified index of @layout.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">the #PangoLayout of the text</doc> <type name="Pango.Layout" c:type="PangoLayout*"/> </parameter> <parameter name="index" transfer-ownership="none"> <doc xml:space="preserve">the index in the #PangoLayout</doc> <type name="gint" c:type="int"/> </parameter> <parameter name="direction" transfer-ownership="none"> <doc xml:space="preserve">the #PangoDirection of the text</doc> <type name="Pango.Direction" c:type="PangoDirection"/> </parameter> </parameters> </function> <function name="render_layout" c:identifier="gtk_render_layout" version="3.0"> <doc xml:space="preserve">Renders @layout on the coordinates @x, @y</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="layout" transfer-ownership="none"> <doc xml:space="preserve">the #PangoLayout to render</doc> <type name="Pango.Layout" c:type="PangoLayout*"/> </parameter> </parameters> </function> <function name="render_line" c:identifier="gtk_render_line" version="3.0"> <doc xml:space="preserve">Renders a line from (x0, y0) to (x1, y1).</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x0" transfer-ownership="none"> <doc xml:space="preserve">X coordinate for the origin of the line</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y0" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate for the origin of the line</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="x1" transfer-ownership="none"> <doc xml:space="preserve">X coordinate for the end of the line</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y1" transfer-ownership="none"> <doc xml:space="preserve">Y coordinate for the end of the line</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_option" c:identifier="gtk_render_option" version="3.0"> <doc xml:space="preserve">Renders an option mark (as in a #GtkRadioButton), 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: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> </parameters> </function> <function name="render_slider" c:identifier="gtk_render_slider" version="3.0"> <doc xml:space="preserve">Renders a slider (as in #GtkScale) in the rectangle defined by @x, @y, @width, @height. @orientation defines whether the slider is vertical or horizontal. Typical slider rendering: </doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="context" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStyleContext</doc> <type name="StyleContext" c:type="GtkStyleContext*"/> </parameter> <parameter name="cr" transfer-ownership="none"> <doc xml:space="preserve">a #cairo_t</doc> <type name="cairo.Context" c:type="cairo_t*"/> </parameter> <parameter name="x" transfer-ownership="none"> <doc xml:space="preserve">X origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="y" transfer-ownership="none"> <doc xml:space="preserve">Y origin of the rectangle</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="width" transfer-ownership="none"> <doc xml:space="preserve">rectangle width</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="height" transfer-ownership="none"> <doc xml:space="preserve">rectangle height</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="orientation" transfer-ownership="none"> <doc xml:space="preserve">orientation of the slider</doc> <type name="Orientation" c:type="GtkOrientation"/> </parameter> </parameters> </function> <function name="rgb_to_hsv" c:identifier="gtk_rgb_to_hsv" version="2.14"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="r" transfer-ownership="none"> <doc xml:space="preserve">Red</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="g" transfer-ownership="none"> <doc xml:space="preserve">Green</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="b" transfer-ownership="none"> <doc xml:space="preserve">Blue</doc> <type name="gdouble" c:type="gdouble"/> </parameter> <parameter name="h" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the hue component</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="s" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the saturation component</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> <parameter name="v" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Return value for the value component</doc> <type name="gdouble" c:type="gdouble*"/> </parameter> </parameters> </function> <function name="selection_add_target" c:identifier="gtk_selection_add_target"> <doc xml:space="preserve">Appends a specified target to the list of supported targets for a given widget and selection.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">the selection</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">target to add.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="info" transfer-ownership="none"> <doc xml:space="preserve">A unsigned integer which will be passed back to the application.</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </function> <function name="selection_add_targets" c:identifier="gtk_selection_add_targets"> <doc xml:space="preserve">Prepends a table of targets to the list of supported targets for a given widget and selection.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">the selection</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">a table of targets to add</doc> <array length="3" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="ntargets" transfer-ownership="none"> <doc xml:space="preserve">number of entries in @targets</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </function> <function name="selection_clear_targets" c:identifier="gtk_selection_clear_targets"> <doc xml:space="preserve">Remove all targets registered for the given selection for the widget.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">an atom representing a selection</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> </parameters> </function> <function name="selection_convert" c:identifier="gtk_selection_convert"> <doc xml:space="preserve">Requests the contents of a selection. When received, a âselection-receivedâ signal will be generated.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if requested succeeded. %FALSE if we could not process request. (e.g., there was already a request in process for this widget).</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">The widget which acts as requestor</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">Which selection to get</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="target" transfer-ownership="none"> <doc xml:space="preserve">Form of information desired (e.g., STRING)</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="time_" transfer-ownership="none"> <doc xml:space="preserve">Time of request (usually of triggering event) In emergency, you could use #GDK_CURRENT_TIME</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </function> <function name="selection_owner_set" c:identifier="gtk_selection_owner_set"> <doc xml:space="preserve">Claims ownership of a given selection for a particular widget, or, if @widget is %NULL, release ownership of the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the operation succeeded</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">a #GtkWidget, or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">an interned atom representing the selection to claim</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="time_" transfer-ownership="none"> <doc xml:space="preserve">timestamp with which to claim the selection</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </function> <function name="selection_owner_set_for_display" c:identifier="gtk_selection_owner_set_for_display" version="2.2"> <doc xml:space="preserve">Claim ownership of a given selection for a particular widget, or, if @widget is %NULL, release ownership of the selection.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">TRUE if the operation succeeded</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="display" transfer-ownership="none"> <doc xml:space="preserve">the #GdkDisplay where the selection is set</doc> <type name="Gdk.Display" c:type="GdkDisplay*"/> </parameter> <parameter name="widget" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">new selection owner (a #GtkWidget), or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="selection" transfer-ownership="none"> <doc xml:space="preserve">an interned atom representing the selection to claim.</doc> <type name="Gdk.Atom" c:type="GdkAtom"/> </parameter> <parameter name="time_" transfer-ownership="none"> <doc xml:space="preserve">timestamp with which to claim the selection</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </function> <function name="selection_remove_all" c:identifier="gtk_selection_remove_all"> <doc xml:space="preserve">Removes all handlers and unsets ownership of all selections for a widget. Called when widget is being destroyed. This function will not generally be called by applications.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">a #GtkWidget</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </function> <function name="set_debug_flags" c:identifier="gtk_set_debug_flags"> <doc xml:space="preserve">Sets the GTK+ debug flags.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="flags" transfer-ownership="none"> <type name="guint" c:type="guint"/> </parameter> </parameters> </function> <function name="show_about_dialog" c:identifier="gtk_show_about_dialog" version="2.6" introspectable="0"> <doc xml:space="preserve">This is a convenience function for showing an applicationâs about box. The constructed dialog is associated with the parent window and reused for future invocations of this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">transient parent, or %NULL for none</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="first_property_name" transfer-ownership="none"> <doc xml:space="preserve">the name of the first property</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">value of first property, followed by more properties, %NULL-terminated</doc> <varargs/> </parameter> </parameters> </function> <function name="show_uri" c:identifier="gtk_show_uri" version="2.14" throws="1"> <doc xml:space="preserve">A convenience function for launching the default application to show the uri. Like gtk_show_uri_on_window(), but takes a screen as transient parent instead of a window. Note that this function is deprecated as it does not pass the necessary information for helpers to parent their dialog properly, when run from sandboxed applications for example.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success, %FALSE on error</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="screen" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">screen to show the uri on or %NULL for the default screen</doc> <type name="Gdk.Screen" c:type="GdkScreen*"/> </parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the uri to show</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="timestamp" transfer-ownership="none"> <doc xml:space="preserve">a timestamp to prevent focus stealing</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </function> <function name="show_uri_on_window" c:identifier="gtk_show_uri_on_window" version="3.22" throws="1"> <doc xml:space="preserve">This is a convenience function for launching the default application to show the uri. The uri must be of a form understood by GIO (i.e. you need to install gvfs to get support for uri schemes such as http:// or ftp://, as only local files are handled by GIO itself). Typical examples are - `file:///home/gnome/pict.jpg` - `http://www.gnome.org` - `mailto:me@gnome.org` Ideally the timestamp is taken from the event triggering the gtk_show_uri() call. If timestamp is not known you can take %GDK_CURRENT_TIME. This is the recommended call to be used as it passes information necessary for sandbox helpers to parent their dialogs properly.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE on success, %FALSE on error</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="parent" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">parent window</doc> <type name="Window" c:type="GtkWindow*"/> </parameter> <parameter name="uri" transfer-ownership="none"> <doc xml:space="preserve">the uri to show</doc> <type name="utf8" c:type="const char*"/> </parameter> <parameter name="timestamp" transfer-ownership="none"> <doc xml:space="preserve">a timestamp to prevent focus stealing</doc> <type name="guint32" c:type="guint32"/> </parameter> </parameters> </function> <function name="stock_add" c:identifier="gtk_stock_add" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Registers each of the stock items in @items. If an item already exists with the same stock ID as one of the @items, the old item gets replaced. The stock items are copied, so GTK+ does not hold any pointer into @items and @items can be freed. Use gtk_stock_add_static() if @items is persistent and GTK+ need not copy the array.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="items" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStockItem or array of items</doc> <array length="1" zero-terminated="0" c:type="GtkStockItem*"> <type name="StockItem" c:type="GtkStockItem"/> </array> </parameter> <parameter name="n_items" transfer-ownership="none"> <doc xml:space="preserve">number of #GtkStockItem in @items</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </function> <function name="stock_add_static" c:identifier="gtk_stock_add_static" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Same as gtk_stock_add(), but doesnât copy @items, so @items must persist until application exit.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="items" transfer-ownership="none"> <doc xml:space="preserve">a #GtkStockItem or array of #GtkStockItem</doc> <array length="1" zero-terminated="0" c:type="GtkStockItem*"> <type name="StockItem" c:type="GtkStockItem"/> </array> </parameter> <parameter name="n_items" transfer-ownership="none"> <doc xml:space="preserve">number of items</doc> <type name="guint" c:type="guint"/> </parameter> </parameters> </function> <function name="stock_list_ids" c:identifier="gtk_stock_list_ids" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Retrieves a list of all known stock IDs added to a #GtkIconFactory or registered with gtk_stock_add(). The list must be freed with g_slist_free(), and each string in the list must be freed with g_free().</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">a list of known stock IDs</doc> <type name="GLib.SList" c:type="GSList*"> <type name="utf8"/> </type> </return-value> </function> <function name="stock_lookup" c:identifier="gtk_stock_lookup" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Fills @item with the registered values for @stock_id, returning %TRUE if @stock_id was known.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @item was initialized</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="stock_id" transfer-ownership="none"> <doc xml:space="preserve">a stock item name</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="item" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:space="preserve">stock item to initialize with values</doc> <type name="StockItem" c:type="GtkStockItem*"/> </parameter> </parameters> </function> <function name="stock_set_translate_func" c:identifier="gtk_stock_set_translate_func" version="2.8" deprecated="1" deprecated-version="3.10"> <doc xml:space="preserve">Sets a function to be used for translating the @label of a stock item. If no function is registered for a translation domain, g_dgettext() is used. The function is used for all stock items whose @translation_domain matches @domain. Note that it is possible to use strings different from the actual gettext translation domain of your application for this, as long as your #GtkTranslateFunc uses the correct domain when calling dgettext(). This can be useful, e.g. when dealing with message contexts: |[<!-- language="C" --> GtkStockItem items[] = { { MY_ITEM1, NC_("odd items", "Item 1"), 0, 0, "odd-item-domain" }, { MY_ITEM2, NC_("even items", "Item 2"), 0, 0, "even-item-domain" }, }; gchar * my_translate_func (const gchar *msgid, gpointer data) { gchar *msgctxt = data; return (gchar*)g_dpgettext2 (GETTEXT_PACKAGE, msgctxt, msgid); } ... gtk_stock_add (items, G_N_ELEMENTS (items)); gtk_stock_set_translate_func ("odd-item-domain", my_translate_func, "odd items"); gtk_stock_set_translate_func ("even-item-domain", my_translate_func, "even items"); ]|</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="domain" transfer-ownership="none"> <doc xml:space="preserve">the translation domain for which @func shall be used</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="func" transfer-ownership="none" scope="notified" closure="2" destroy="3"> <doc xml:space="preserve">a #GtkTranslateFunc</doc> <type name="TranslateFunc" c:type="GtkTranslateFunc"/> </parameter> <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">data to pass to @func</doc> <type name="gpointer" c:type="gpointer"/> </parameter> <parameter name="notify" transfer-ownership="none" scope="async"> <doc xml:space="preserve">a #GDestroyNotify that is called when @data is no longer needed</doc> <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> </parameter> </parameters> </function> <function name="target_table_free" c:identifier="gtk_target_table_free" version="2.10"> <doc xml:space="preserve">This function frees a target table as returned by gtk_target_table_new_from_list()</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetEntry array</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the number of entries in the array</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="target_table_new_from_list" c:identifier="gtk_target_table_new_from_list" version="2.10"> <doc xml:space="preserve">This function creates an #GtkTargetEntry array that contains the same targets as the passed %list. The returned table is newly allocated and should be freed using gtk_target_table_free() when no longer needed.</doc> <return-value transfer-ownership="full"> <doc xml:space="preserve">the new table.</doc> <array length="1" zero-terminated="0" c:type="GtkTargetEntry*"> <type name="TargetEntry" c:type="GtkTargetEntry"/> </array> </return-value> <parameters> <parameter name="list" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTargetList</doc> <type name="TargetList" c:type="GtkTargetList*"/> </parameter> <parameter name="n_targets" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">return location for the number ot targets in the table</doc> <type name="gint" c:type="gint*"/> </parameter> </parameters> </function> <function name="targets_include_image" c:identifier="gtk_targets_include_image" version="2.10"> <doc xml:space="preserve">Determines if any of the targets in @targets can be used to provide a #GdkPixbuf.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @targets include a suitable target for images, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">an array of #GdkAtoms</doc> <array length="1" zero-terminated="0" c:type="GdkAtom*"> <type name="Gdk.Atom" c:type="GdkAtom"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the length of @targets</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="writable" transfer-ownership="none"> <doc xml:space="preserve">whether to accept only targets for which GTK+ knows how to convert a pixbuf into the format</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="targets_include_rich_text" c:identifier="gtk_targets_include_rich_text" version="2.10"> <doc xml:space="preserve">Determines if any of the targets in @targets can be used to provide rich text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @targets include a suitable target for rich text, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">an array of #GdkAtoms</doc> <array length="1" zero-terminated="0" c:type="GdkAtom*"> <type name="Gdk.Atom" c:type="GdkAtom"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the length of @targets</doc> <type name="gint" c:type="gint"/> </parameter> <parameter name="buffer" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTextBuffer</doc> <type name="TextBuffer" c:type="GtkTextBuffer*"/> </parameter> </parameters> </function> <function name="targets_include_text" c:identifier="gtk_targets_include_text" version="2.10"> <doc xml:space="preserve">Determines if any of the targets in @targets can be used to provide text.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @targets include a suitable target for text, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">an array of #GdkAtoms</doc> <array length="1" zero-terminated="0" c:type="GdkAtom*"> <type name="Gdk.Atom" c:type="GdkAtom"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the length of @targets</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="targets_include_uri" c:identifier="gtk_targets_include_uri" version="2.10"> <doc xml:space="preserve">Determines if any of the targets in @targets can be used to provide an uri list.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @targets include a suitable target for uri lists, otherwise %FALSE.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="targets" transfer-ownership="none"> <doc xml:space="preserve">an array of #GdkAtoms</doc> <array length="1" zero-terminated="0" c:type="GdkAtom*"> <type name="Gdk.Atom" c:type="GdkAtom"/> </array> </parameter> <parameter name="n_targets" transfer-ownership="none"> <doc xml:space="preserve">the length of @targets</doc> <type name="gint" c:type="gint"/> </parameter> </parameters> </function> <function name="test_create_simple_window" c:identifier="gtk_test_create_simple_window" version="2.14" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Create a simple window with window title @window_title and text contents @dialog_text. The window will quit any running gtk_main()-loop when destroyed, and it will automatically be destroyed upon test function teardown.</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a widget pointer to the newly created GtkWindow.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="window_title" transfer-ownership="none"> <doc xml:space="preserve">Title of the window to be displayed.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="dialog_text" transfer-ownership="none"> <doc xml:space="preserve">Text inside the window to be displayed.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="test_create_widget" c:identifier="gtk_test_create_widget" version="2.14" introspectable="0" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">This function wraps g_object_new() for widget types. Itâll automatically show all created non window widgets, also g_object_ref_sink() them (to keep them alive across a running test) and set them up for destruction during the next test teardown phase.</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">a newly created widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="widget_type" transfer-ownership="none"> <doc xml:space="preserve">a valid widget type.</doc> <type name="GType" c:type="GType"/> </parameter> <parameter name="first_property_name" transfer-ownership="none" nullable="1" allow-none="1"> <doc xml:space="preserve">Name of first property to set or %NULL</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">value to set the first property to, followed by more name-value pairs, terminated by %NULL</doc> <varargs/> </parameter> </parameters> </function> <function name="test_display_button_window" c:identifier="gtk_test_display_button_window" version="2.14" introspectable="0" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Create a window with window title @window_title, text contents @dialog_text, and a number of buttons, according to the paired argument list given as @... parameters. Each button is created with a @label and a ::clicked signal handler that incremrents the integer stored in @nump. The window will be automatically shown with gtk_widget_show_now() after creation, so when this function returns it has already been mapped, resized and positioned on screen. The window will quit any running gtk_main()-loop when destroyed, and it will automatically be destroyed upon test function teardown.</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">a widget pointer to the newly created GtkWindow.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="window_title" transfer-ownership="none"> <doc xml:space="preserve">Title of the window to be displayed.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="dialog_text" transfer-ownership="none"> <doc xml:space="preserve">Text inside the window to be displayed.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">%NULL terminated list of (const char *label, int *nump) pairs.</doc> <varargs/> </parameter> </parameters> </function> <function name="test_find_label" c:identifier="gtk_test_find_label" version="2.14"> <doc xml:space="preserve">This function will search @widget and all its descendants for a GtkLabel widget with a text string matching @label_pattern. The @label_pattern may contain asterisks â*â and question marks â?â as placeholders, g_pattern_match() is used for the matching. Note that locales other than "Câ tend to alter (translateâ label strings, so this function is genrally only useful in test programs with predetermined locales, see gtk_test_init() for more details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a GtkLabel widget if any is found.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">Valid label or container widget.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="label_pattern" transfer-ownership="none"> <doc xml:space="preserve">Shell-glob pattern to match a label string.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="test_find_sibling" c:identifier="gtk_test_find_sibling" version="2.14"> <doc xml:space="preserve">This function will search siblings of @base_widget and siblings of its ancestors for all widgets matching @widget_type. Of the matching widgets, the one that is geometrically closest to @base_widget will be returned. The general purpose of this function is to find the most likely âactionâ widget, relative to another labeling widget. Such as finding a button or text entry widget, given its corresponding label widget.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">a widget of type @widget_type if any is found.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="base_widget" transfer-ownership="none"> <doc xml:space="preserve">Valid widget, part of a widget hierarchy</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="widget_type" transfer-ownership="none"> <doc xml:space="preserve">Type of a aearched for sibling widget</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </function> <function name="test_find_widget" c:identifier="gtk_test_find_widget" version="2.14"> <doc xml:space="preserve">This function will search the descendants of @widget for a widget of type @widget_type that has a label matching @label_pattern next to it. This is most useful for automated GUI testing, e.g. to find the âOKâ button in a dialog and synthesize clicks on it. However see gtk_test_find_label(), gtk_test_find_sibling() and gtk_test_widget_click() for possible caveats involving the search of such widgets and synthesizing widget events.</doc> <return-value transfer-ownership="none" nullable="1"> <doc xml:space="preserve">a valid widget if any is found or %NULL.</doc> <type name="Widget" c:type="GtkWidget*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">Container widget, usually a GtkWindow.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="label_pattern" transfer-ownership="none"> <doc xml:space="preserve">Shell-glob pattern to match a label string.</doc> <type name="utf8" c:type="const gchar*"/> </parameter> <parameter name="widget_type" transfer-ownership="none"> <doc xml:space="preserve">Type of a aearched for label sibling widget.</doc> <type name="GType" c:type="GType"/> </parameter> </parameters> </function> <function name="test_init" c:identifier="gtk_test_init" version="2.14" introspectable="0"> <doc xml:space="preserve">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â and prevent loading of rc files and Gtk+ modules. This is done to make tets 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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="argcp" direction="inout" caller-allocates="0" transfer-ownership="none"> <doc xml:space="preserve">Address of the `argc` parameter of the main() function. Changed if any arguments were handled.</doc> <type name="gint" c:type="int*"/> </parameter> <parameter name="argvp" direction="inout" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">Address of the `argv` parameter of main(). Any parameters understood by g_test_init() or gtk_init() are stripped before return.</doc> <array length="0" zero-terminated="0" c:type="char***"> <type name="utf8" c:type="char**"/> </array> </parameter> <parameter name="..." transfer-ownership="none"> <doc xml:space="preserve">currently unused</doc> <varargs/> </parameter> </parameters> </function> <function name="test_list_all_types" c:identifier="gtk_test_list_all_types" version="2.14"> <doc xml:space="preserve">Return the type ids that have been registered after calling gtk_test_register_all_types().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve"> 0-terminated array of type ids</doc> <array length="0" zero-terminated="1" c:type="GType*"> <type name="GType" c:type="GType"/> </array> </return-value> <parameters> <parameter name="n_types" direction="out" caller-allocates="0" transfer-ownership="full"> <doc xml:space="preserve">location to store number of types</doc> <type name="guint" c:type="guint*"/> </parameter> </parameters> </function> <function name="test_register_all_types" c:identifier="gtk_test_register_all_types" version="2.14"> <doc xml:space="preserve">Force registration of all core Gtk+ and Gdk object types. This allowes to refer to any of those object types via g_type_from_name() after calling this function.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> </function> <function name="test_slider_get_value" c:identifier="gtk_test_slider_get_value" version="2.14" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Retrive the literal adjustment value for GtkRange based widgets and spin buttons. Note that the value returned by this function is anything between the lower and upper bounds of the adjustment belonging to @widget, and is not a percentage as passed in to gtk_test_slider_set_perc().</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">gtk_adjustment_get_value (adjustment) for an adjustment belonging to @widget.</doc> <type name="gdouble" c:type="double"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">valid widget pointer.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </function> <function name="test_slider_set_perc" c:identifier="gtk_test_slider_set_perc" version="2.14" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">This function will adjust the slider position of all GtkRange based widgets, such as scrollbars or scales, itâll also adjust spin buttons. The adjustment value of these widgets is set to a value between the lower and upper limits, according to the @percentage argument.</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">valid widget pointer.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="percentage" transfer-ownership="none"> <doc xml:space="preserve">value between 0 and 100.</doc> <type name="gdouble" c:type="double"/> </parameter> </parameters> </function> <function name="test_spin_button_click" c:identifier="gtk_test_spin_button_click" version="2.14" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">This function will generate a @button click in the upwards or downwards spin button arrow areas, usually leading to an increase or decrease of spin buttonâs value.</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether all actions neccessary for the button click simulation were carried out successfully.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="spinner" transfer-ownership="none"> <doc xml:space="preserve">valid GtkSpinButton widget.</doc> <type name="SpinButton" c:type="GtkSpinButton*"/> </parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">Number of the pointer button for the event, usually 1, 2 or 3.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="upwards" transfer-ownership="none"> <doc xml:space="preserve">%TRUE for upwards arrow click, %FALSE for downwards arrow click.</doc> <type name="gboolean" c:type="gboolean"/> </parameter> </parameters> </function> <function name="test_text_get" c:identifier="gtk_test_text_get" version="2.14" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Retrive the text string of @widget if it is a GtkLabel, GtkEditable (entry and text widgets) or GtkTextView.</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="full"> <doc xml:space="preserve">new 0-terminated C string, needs to be released with g_free().</doc> <type name="utf8" c:type="gchar*"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">valid widget pointer.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </function> <function name="test_text_set" c:identifier="gtk_test_text_set" version="2.14" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">Set the text string of @widget to @string if it is a GtkLabel, GtkEditable (entry and text widgets) or GtkTextView.</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">valid widget pointer.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="string" transfer-ownership="none"> <doc xml:space="preserve">a 0-terminated C string</doc> <type name="utf8" c:type="const gchar*"/> </parameter> </parameters> </function> <function name="test_widget_click" c:identifier="gtk_test_widget_click" version="2.14" deprecated="1" deprecated-version="3.20"> <doc xml:space="preserve">This function will generate a @button click (button press and button release event) in the middle of the first GdkWindow found that belongs to @widget. For windowless widgets like #GtkButton (which returns %FALSE from gtk_widget_get_has_window()), this will often be an input-only event window. For other widgets, this is usually widget->window. Certain caveats should be considered when using this function, in particular because the mouse pointer is warped to the button click location, see gdk_test_simulate_button() for details.</doc> <doc-deprecated xml:space="preserve">This testing infrastructure is phased out in favor of reftests.</doc-deprecated> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether all actions neccessary for the button click simulation were carried out successfully.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">Widget to generate a button click on.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="button" transfer-ownership="none"> <doc xml:space="preserve">Number of the pointer button for the event, usually 1, 2 or 3.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">Keyboard modifiers the event is setup with.</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="test_widget_send_key" c:identifier="gtk_test_widget_send_key" version="2.14"> <doc xml:space="preserve">This function will generate keyboard press and release events in the middle of the first GdkWindow found that belongs to @widget. For windowless widgets like #GtkButton (which returns %FALSE from gtk_widget_get_has_window()), this will often be an input-only event window. For other widgets, this is usually widget->window. Certain caveats should be considered when using this function, in particular because the mouse pointer is warped to the key press location, see gdk_test_simulate_key() for details.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">whether all actions neccessary for the key event simulation were carried out successfully.</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">Widget to generate a key press and release on.</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> <parameter name="keyval" transfer-ownership="none"> <doc xml:space="preserve">A Gdk keyboard value.</doc> <type name="guint" c:type="guint"/> </parameter> <parameter name="modifiers" transfer-ownership="none"> <doc xml:space="preserve">Keyboard modifiers the event is setup with.</doc> <type name="Gdk.ModifierType" c:type="GdkModifierType"/> </parameter> </parameters> </function> <function name="test_widget_wait_for_draw" c:identifier="gtk_test_widget_wait_for_draw" version="3.10"> <doc xml:space="preserve">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.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="widget" transfer-ownership="none"> <doc xml:space="preserve">the widget to wait for</doc> <type name="Widget" c:type="GtkWidget*"/> </parameter> </parameters> </function> <function name="tree_get_row_drag_data" c:identifier="gtk_tree_get_row_drag_data"> <doc xml:space="preserve">Obtains a @tree_model and @path from selection data of target type %GTK_TREE_MODEL_ROW. Normally called from a drag_data_received handler. This function can only be used if @selection_data originates from the same process thatâs calling this function, because a pointer to the tree model is being passed around. If you arenât in the same process, then you'll get memory corruption. In the #GtkTreeDragDest drag_data_received handler, you can assume that selection data of type %GTK_TREE_MODEL_ROW is in from the current process. The returned path must be freed with gtk_tree_path_free().</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if @selection_data had target type %GTK_TREE_MODEL_ROW and is otherwise valid</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">a #GtkSelectionData</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="tree_model" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel**"/> </parameter> <parameter name="path" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1"> <doc xml:space="preserve">row in @tree_model</doc> <type name="TreePath" c:type="GtkTreePath**"/> </parameter> </parameters> </function> <function name="tree_row_reference_deleted" c:identifier="gtk_tree_row_reference_deleted" moved-to="TreeRowReference.deleted"> <doc xml:space="preserve">Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the #GtkTreeModel::row-deleted signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">a #GObject</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the path position that was deleted</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </function> <function name="tree_row_reference_inserted" c:identifier="gtk_tree_row_reference_inserted" moved-to="TreeRowReference.inserted"> <doc xml:space="preserve">Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the #GtkTreeModel::row-inserted signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">a #GObject</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the row position that was inserted</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </function> <function name="tree_row_reference_reordered" c:identifier="gtk_tree_row_reference_reordered" moved-to="TreeRowReference.reordered" introspectable="0"> <doc xml:space="preserve">Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the #GtkTreeModel::rows-reordered signal.</doc> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="proxy" transfer-ownership="none"> <doc xml:space="preserve">a #GObject</doc> <type name="GObject.Object" c:type="GObject*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">the parent path of the reordered signal</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> <parameter name="iter" transfer-ownership="none"> <doc xml:space="preserve">the iter pointing to the parent of the reordered</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="new_order" transfer-ownership="none"> <doc xml:space="preserve">the new order of rows</doc> <array zero-terminated="0" c:type="gint*"> <type name="gint" c:type="gint"/> </array> </parameter> </parameters> </function> <function name="tree_set_row_drag_data" c:identifier="gtk_tree_set_row_drag_data"> <doc xml:space="preserve">Sets selection data of target type %GTK_TREE_MODEL_ROW. Normally used in a drag_data_get handler.</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE if the #GtkSelectionData had the proper target type to allow us to set a tree row</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="selection_data" transfer-ownership="none"> <doc xml:space="preserve">some #GtkSelectionData</doc> <type name="SelectionData" c:type="GtkSelectionData*"/> </parameter> <parameter name="tree_model" transfer-ownership="none"> <doc xml:space="preserve">a #GtkTreeModel</doc> <type name="TreeModel" c:type="GtkTreeModel*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:space="preserve">a row in @tree_model</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </function> <function name="true" c:identifier="gtk_true"> <doc xml:space="preserve">All this function does it to return %TRUE. This can be useful for example if you want to inhibit the deletion of a window. Of course you should not do this as the user expects a reaction from clicking the close icon of the window... ## A persistent window |[<!-- language="C" --> #include <gtk/gtk.h> int main (int argc, char **argv) { GtkWidget *win, *but; const char *text = "Close yourself. I mean it!"; gtk_init (&argc, &argv); win = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (win, "delete-event", G_CALLBACK (gtk_true), NULL); g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL); but = gtk_button_new_with_label (text); g_signal_connect_swapped (but, "clicked", G_CALLBACK (gtk_object_destroy), win); gtk_container_add (GTK_CONTAINER (win), but); gtk_widget_show_all (win); gtk_main (); return 0; } ]|</doc> <return-value transfer-ownership="none"> <doc xml:space="preserve">%TRUE</doc> <type name="gboolean" c:type="gboolean"/> </return-value> </function> </namespace> </repository>